1

我在 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。关于我做错了什么的任何想法?

提前致谢。

4

1 回答 1

0

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

来自网站的报价

造成这种情况的原因是类路径或配置中某处存在旧版本的 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 来检查是否是这种情况。

于 2013-10-21T04:42:26.477 回答