【问题标题】:Inconsistency in ant command - CentOS 6.3ant命令不一致 - CentOS 6.3
【发布时间】:2013-10-21 04:27:15
【问题描述】:

我在 CentOS 6.3 中,我正在尝试使用 ant 命令重新编译一个 .java 文件,但是我得到了这两个结果。

当我运行 ant

    Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.launch.Launcher
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: org.apache.tools.ant.launch.Launcher. Program will exit.

当我运行 sudo ant

    Error: JAVA_HOME is not defined correctly.
  We cannot execute java

当我运行 *echo $JAVA_HOME*

/usr/lib/jvm/java-1.6.0-openjdk/

在有人建议我应该使用 JRE 而不是 JDK 之前,我只需要提一下我正在运行的软件的安装手册 - OpenGTS - 专门要求使用 JDK。关于我做错了什么有什么想法吗?

提前致谢。

【问题讨论】:

  • 什么是ant版本?

标签: java ant


【解决方案1】:

ant 是启动 java 程序的脚本。脚本似乎无法确定 ANT_HOME 的值。在 linux 上,脚本尝试加载重置 ANT_HOME 的 /etc/ant.conf。您的症状不符,但值得检查。

Quote from site

造成这种情况的原因是在某个地方有一个旧版本的 ant 类路径或配置。

在某些 linux 系统上可能会看到此问题的一个版本。一些 linux系统(例如Fedora Core 2),自带ant版本 预装。有一个名为 /etc/ant.conf 的配置文件 如果存在,则 ant shell 脚本将“点”包括在内。在 Fedora 上 Core 2,/etc/ant.conf 文件重置 ANT_HOME 环境 /usr/share/ant 的变量。这导致了一个旧的问题 ant 版本(在这个原因中为 1.5.x)将与新版本一起使用 ant 脚本文件。

可以通过执行 ant --noconfig -version 来检查是否是这种情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 2020-12-18
    相关资源
    最近更新 更多