我的ant配置有什么问题?
我使用yum在Fedora 5机器上安装了Ant,但Ant没有启动。我收到以下错误消息:我的ant配置有什么问题?,ant,fedora,Ant,Fedora,我使用yum在Fedora 5机器上安装了Ant,但Ant没有启动。我收到以下错误消息: [bash]# ant Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.launch.Launcher at java.net
[bash]# ant
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher
Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.launch.Launcher
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: org.apache.tools.ant.launch.Launcher. Program will exit.
[bash]# ant --execdebug
/usr/bin/build-classpath: error: Could not find jaxp_parser_impl Java extension for this JVM
/usr/bin/build-classpath: error: Could not find xml-commons-apis Java extension for this JVM
/usr/bin/build-classpath: error: Some specified jars were not found
exec "/usr/java/latest/bin/java" -classpath "/usr/share/java-1.6.0/ant.jar:/usr/share/java-1.6.0/ant-launcher.jar:/usr/java/latest/lib/tools.jar" -Dant.home="/usr" -Dant.library.dir="/usr/lib" org.apache.tools.ant.launch.Launcher -cp ""
Buildfile: build.xml does not exist!
Build failed
我已经设置了以下环境变量:
JAVA_HOME = /usr/java/latest
ANT_HOME = /usr/bin
Ant安装在/usr/bin/Ant
我也遇到过,JAVAVER\u LIBDIR
变量似乎没有指向存在的东西。我设置了一个象征性的链接,就像帖子建议的那样,为作者澄清了这个问题,但它并没有为我解决问题
[bash]# sudo ln -s /usr/share/java /usr/share/java-1.6.0
Edit:我还设置了一个符号链接,解决了JAVAVER_JNIDIR
变量的类似问题:
[bash]# sudo ln -s /usr/lib/java /usr/lib/java-1.6.0
我现在收到一条不同的错误消息:
[bash]# ant
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher
Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.launch.Launcher
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: org.apache.tools.ant.launch.Launcher. Program will exit.
[bash]# ant --execdebug
/usr/bin/build-classpath: error: Could not find jaxp_parser_impl Java extension for this JVM
/usr/bin/build-classpath: error: Could not find xml-commons-apis Java extension for this JVM
/usr/bin/build-classpath: error: Some specified jars were not found
exec "/usr/java/latest/bin/java" -classpath "/usr/share/java-1.6.0/ant.jar:/usr/share/java-1.6.0/ant-launcher.jar:/usr/java/latest/lib/tools.jar" -Dant.home="/usr" -Dant.library.dir="/usr/lib" org.apache.tools.ant.launch.Launcher -cp ""
Buildfile: build.xml does not exist!
Build failed
我想ANT_HOME应该设置为“/usr/bin/ANT”。我有那个配置(CENTOS 5) 我在“/etc/profile.d”下的sh脚本有以下配置:
export JAVA_HOME="/usr/local/java";
export ANT_HOME="/usr/local/ant";
我希望它能帮助您。尝试安装
xerces-j2-xml-api
我遇到了类似的问题,但以下操作为我解决了此问题:
sudo yum install xml-commons-apis
我在Suse,SLES 11上也有同样的问题。Hidayath的回答解决了这个问题。 假设现成的包存储库:
me@sles:~>sudo zypper安装xerces-j2-xml-api我在Fedora 16上遇到了这样的问题,但在我的情况下,
xerces
软件包和xml commons API
是可以的。实际上,--execdebug
非常有用,它指出ant在/usr/lib/jvm exports/YOUR_JDK
上找不到目录。这是因为我从openjdk切换到oracle的jdk,jdk的前一个版本(/usr/lib/jvm exports/java-1.6.0-openjdk-1.6.0.0
)的目录留在那里,但我的当前版本(/usr/lib/jvm exports/jdk1.6.0\u 32
)没有。这些目录只包含一组指向特定jre JAR的软链接,因此我采取了以下步骤:
jdk1.6.0\u 32
)\cp-av java-1.6.0-openjdk-1.6.0.0.x86_64/*jdk1.6.0_32/
\cd/usr/lib/jvm exports/jdk1.6.0\u 32
\ln-s-f$JAVA\u HOME/jre/lib/rt.jar jaas-1.6.0.0.jar
$JAVA_HOME
设置正确(在新的jdk版本上)。
它解决了我的问题,可能是除上述原因之外的另一个原因。我刚刚在Fedora 18上遇到了类似的问题 要使长话短说,请运行:
sudo mkdir /usr/lib/java-1.7.0 /usr/share/java-1.7.0
显然,这个问题是针对java-1.7.0-openjdk
的,因为所有其他JDK版本都存在类似的空目录
详细信息 运行
ant
后出现单行错误:
Error: Could not find or load main class org.apache.tools.ant.launch.Launcher
问题出在/usr/share/java utils/java functions
脚本的某个地方,该脚本试图设置JAVAVER_JNIDIR
/JAVAVER_LIBDIR
变量以引用上述目录。由于错误消息重定向到标准输出不正确,某些变量得到了如下分配:
LOCALCLASSPATH='/usr/bin/build-classpath: error: JAVAVER_JNIDIR /usr/lib/java-1.7.0 does not exist or is not a directory'
根据所有其他java版本设置的约定创建目录是最干净的解决方案
sudo mkdir /usr/lib/java-1.7.0 /usr/share/java-1.7.0
我通过下载tar文件并将其放在/opt中安装了sunjava1.7.x。因为我没有进行yum安装,所以没有创建这些目录。我的JAVA_主页设置为:
$ echo $JAVA_HOME/
/opt/jdk1.7.0_03/
正如其他人所说,运行以下程序提供了非常有用的调试:
ant --execdebug
在我的例子中,我正在设置我的
ANT\u HOME
变量,但在系统路径中附加了/bin/
以供使用-此HOME变量不应是二进制目录,请使用以下方法设置ANT hime,并将二进制目录添加到env路径中
export ANT_HOME=/opt/apache-ant-1.9.4
export PATH=$ANT_HOME/bin:$PATH
我在OSX上收到了完全相同的错误消息,但有人建议取消ANT_HOME的设置,结果成功了。
我今天收到了相同的错误消息,但由不同的原因触发 在我的例子中,在更新到OpenJDK1.8.0之后,我无法再运行ant 问题在于
java-fullversion
命令的输出稍有变化,而/usr/share/java-utils/java函数
不再正确理解它
升级到最新版本的
jpackage-utils
RPM为我解决了这个问题。在我的例子中,“lib
”文件夹包含所有jar,包括
ant-launcher.jar
在
/usr/local/Cellar/ant/1.9.6/libexec/
我在下面复制了lib文件夹
/usr/local/Cellar/ant/1.9.6/
因为在运行“ant--execdebug”之后,我发现ant命令正在“1.9.6”文件夹下查找“lib”文件夹
更改后,ant命令开始正常工作。运行
哪个ant
,以了解ant\u home
是否已设置。如果没有,请在下面运行相应的路径以设置ant\u home
:
export ANT_HOME=/ade_autofs/gd29_3rdparty/ANT_1.7.1_GENERIC.rdd/080925/ant
export PATH=$ANT_HOME/bin:${PATH}
这是问题的一部分。谢谢我还没有完全修好所有的东西,但这在整个过程中起了作用。谢谢!!使用
--execdebug
发现,我也遇到同样的问题,类路径设置不正确。非常感谢。这也让我对java-1.8.0感到疯狂!这个解决方案帮助我解决了Suse SLES11盒子上的相同问题-路径只是略有不同。是的,ant--execdebug
!这解决了我在SLE11SP4上使用ant
和JDK8时遇到的找不到这个JVM的xml commons API Java扩展的错误。