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...
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
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.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
Try installing
xerces-j2-xml-apis
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.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:
As someone else said, running the following provided very useful debug: