我在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。关于我做错了什么的想法?
提前致谢。
答案 0 :(得分:0)
ant是启动java程序的脚本。看来脚本无法找出ANT_HOME的值。在linux上,脚本尝试加载/etc/ant.conf以重置ANT_HOME。您的症状不符合,但值得检查。
原因是某处有一个旧版本的蚂蚁 类路径或配置。
在某些Linux系统上可能会看到此问题的一个版本。一些 linux系统(例如Fedora Core 2)附带一个ant版本 预装。有一个名为/etc/ant.conf的配置文件 如果存在,ant shell脚本将'dot'包括在内。在Fedora上 核心2,/ etc / ant.conf文件重置ANT_HOME环境 变量到/ usr / share / ant。这导致了一个旧的问题 ant的版本(此原因中为1.5.x)将与新版本一起使用 蚂蚁脚本文件。
可以通过执行ant -noconfig -version检查是否是这种情况。