What is wrong with my ant configuration?

2019-01-18 01:46发布

I installed Ant on a Fedora 5 machine using yum, but Ant does not launch. I get this error message:

[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.

I have set the following environment variables:

JAVA_HOME = /usr/java/latest
ANT_HOME = /usr/bin

Ant is installed at /usr/bin/ant.

I have also come across this post, and it seems that the JAVAVER_LIBDIR variable does not point to something that exists. I set a symbolic link, like the post suggests cleared the issue up for the author, but it did not fix things for me.

[bash]# sudo ln -s /usr/share/java /usr/share/java-1.6.0

Edit: I have also set a symbolic link that addressed a similar problem with the JAVAVER_JNIDIR variable:

[bash]# sudo ln -s /usr/lib/java /usr/lib/java-1.6.0

I now get a different error message:

[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

Off to Google these error messages...

标签: ant fedora
11条回答
▲ chillily
2楼-- · 2019-01-18 02:02

I was having the exact same error message on OS X, but somebody suggested unsetting ANT_HOME and that worked. https://github.com/Homebrew/homebrew/issues/32851

查看更多
Ridiculous、
3楼-- · 2019-01-18 02:05

In my case, I was setting my ANT_HOME variable, but had /bin/ appended for use in the system path - this home variable should not be the binary directory, use the following for setting an ant hime, and adding the binary directory to the env path.

export ANT_HOME=/opt/apache-ant-1.9.4
export PATH=$ANT_HOME/bin:$PATH
查看更多
迷人小祖宗
4楼-- · 2019-01-18 02:05

I had the same problem on Suse, SLES 11. Hidayath's answer https://stackoverflow.com/a/4849302/1211900 solved it. Assuming out-of-the-box package repositories: me@sles:~> sudo zypper install xerces-j2-xml-apis

查看更多
地球回转人心会变
5楼-- · 2019-01-18 02:10

Try installing xerces-j2-xml-apis

查看更多
劫难
6楼-- · 2019-01-18 02:12

I had the same error message today, but triggered by a different cause.

In my case, after I updated to OpenJDK 1.8.0, I could no longer run ant.

The problem lied with the fact that the output of the java -fullversion command had changed slightly, and the /usr/share/java-utils/java-functions no longer correctly understood it.

Upgrading to the latest version of the jpackage-utils RPM solved it for me.

查看更多
放我归山
7楼-- · 2019-01-18 02:13
sudo mkdir /usr/lib/java-1.7.0 /usr/share/java-1.7.0

I installed sun java 1.7.x by downloading the tar file and placing it in /opt. Because I didn't do a yum install these directories were not created. My JAVA_HOME is set to:

$ echo $JAVA_HOME/
/opt/jdk1.7.0_03/

As someone else said, running the following provided very useful debug:

ant --execdebug
查看更多
登录 后发表回答