Ant Fehler: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher

Bin ich auf Fedora 17. Ich bin versucht zu kompilieren-Projekt mit einem ant-build-Datei, die nicht kompatibel mit Java 7. So habe ich beschlossen, installieren Sie OpenJDK 6. JDK 6 ist leider entfernt von yum-Repositorys, und ich dachte, es wäre einfach, um es manuell zu installieren. Ich habe gelernt, dass es keine variable JAVA_HOME und alternativen-system verwendet. Also ich heruntergeladen OpenJDK-Binärdateien (von OSG wenn es darauf ankommt) und installiert java & javac & javaws mit alternatives --install Befehl. Überprüfung java --version und javac --version erwies sich als erfolgreich. Aber die seltsame Sache passiert ist, ist, dass die Ameise funktioniert nicht mehr! Wenn ich ant --execdebug ich diese Meldung erhalten:

exec "/usr/lib/jvm/openjdk-6.0.24/bin/java" -classpath "/usr/bin/build-classpath: 
error: JVM_LIBDIR /usr/lib/jvm-exports/openjdk-6.0.24 does not exist or is not a 
directory:/usr/bin/build-classpath: error: JVM_LIBDIR /usr/lib/jvm-exports/openjdk-6.0.24 
does not exist or is not a directory:/usr/lib/jvm/openjdk-6.0.24/lib/tools.jar"
-Dant.home="/usr/share/ant" -Dant.library.dir="/usr/share/ant/lib" 
org.apache.tools.ant.launch.Launcher -cp ""
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: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.

Wie der Fall mit java, es gibt keine variable ANT_HOME zu. Aber es war nicht ein ANT_HOME auch vor der Installation von java 6, während es gut funktioniert. Ant ist installiert unter /usr/bin/ant, das bereits in PATH.

UPDATE: ich weiß es gibt ähnliche Fragen qustion 1, Frage 2. Aber weder mein problem gelöst. Zum Beispiel das hinzufügen von ANT_HOME=/usr/bin verschlechtert sich die situation, in der die Ameise arbeitet nicht selbst mit dem JDK 7! Durch meine mangelnde Vertrautheit mit alternativen system, ich bin völlig entfernt java-bezogene alternativen, JAVA_HOME Hinzugefügt und geändert-PFAD statt. Wieder, java & javac funktionieren, mit der java-version die Rückgabe der rechts-version, aber die Ameise ist wieder der gleiche Fehler. Als die --execdebug sagt uns, JVM_LIBDIR ist nicht an den richtigen Speicherort verweist. Ich nehme an, dass der Wert in java.conf-Datei, so bin ich einfügen es hier (ich habe installiert, JDK 6 & 7 auf /usr/lib/jvm):

# System-wide Java configuration file                                -*- sh -*-
#
# JPackage Project <http://www.jpackage.org/>

# Location of jar files on the system
JAVA_LIBDIR=/usr/share/java

# Location of arch-specific jar files on the system
JNI_LIBDIR=/usr/lib64/java

# Location for noarch jar files using arch-specifics jar files
JAVAJNI_LIBDIR=/usr/share/java-jni

# Root of all JVM installations
JVM_ROOT=/usr/lib/jvm

# You can define a system-wide JVM root here if you're not using the
# default one.
#
# If you have the a base JRE package installed
# (e.g. java-1.6.0-openjdk):
#JAVA_HOME=$JVM_ROOT/jre
#
# If you have the a devel JDK package installed
# (e.g. java-1.6.0-openjdk-devel):
#JAVA_HOME=$JVM_ROOT/java-1.7.0-openjdk-1.7.0.9.x86_64
JAVA_HOME=$JVM_ROOT/openjdk-6.0.24

# Options to pass to the java interpreter
JAVACMD_OPTS=

Nur durch die Kommentare und die Kommentarzeichen vor den entsprechenden Zeilen in java.conf, es stellt sich die Ameise ist in Ordnung, mit 7 und schlägt mit 6. wenn ich echo JVM_LIBDIR kurz vor java Befehl in der ant-shell, die ich erhalten user/share/java wie gesagt in java.conf. Aber ant --execdebug zurückgegeben hat etwas seltsames: JVM_LIBDIR /usr/lib/jvm-exports/openjdk-6.0.24. Was ist das und wie kann ich es beheben?

Wenn Sie nicht sagen könnten, das problem ist hier, was ist die sauberste und sicherste Weg, um die Installation mehrerer Versionen des JDK, das leicht geschaltet werden?

Jede Hilfe ist willkommen.

InformationsquelleAutor Ameer Jewdaki | 2013-02-28

Schreibe einen Kommentar