Wie können mehrere jars in den classpath mit Hilfe von ant?
Habe ich einen Haufen .java-Dateien im "src" - Ordners hängt von drei Gläsern im "lib" - Ordner. Ich habe Folgendes build.xml Datei:
<?xml version="1.0"?>
<project name="MyProj" basedir=".">
<property name="src" value="src"/>
<property name="build" value="build"/>
<property name="lib" value="lib"/>
<path id="master-classpath">
<fileset dir="${lib}">
<include name="activemq-all-5.1-SNAPSHOT.jar"/>
<include name="geronimo-jms_1.1_spec-1.1.1.jar"/>
<include name="activemq-core-5.3.0.jar"/>
</fileset>
</path>
<javac destdir="${build}">
<src path="${src}"/>
<classpath refid="master-classpath"/>
</javac>
</project>
Diese kompiliert problemlos, aber wenn ich versuche und ausführen bekomme ich
"java.lang.NoClassDefFoundError:
javax/jms/Ziel"
Dieses Programm wird ausgeführt und kompiliert fein, wenn ich die jars im buildpath in Eclipse, obwohl.
EDIT: Also kopierte ich die Gläser in den Ordner mit den kompilierten Klassen. Die Klasse mit der main-Methode ist NDriver.class. Wenn ich versuche:
java -classpath
./geronimo-jms_1.1_spec-1.1.1.jar:./activemq-core-5.3.0.jar:./activemq-all-5.1-SNAPSHOT.jar
NDriver
Gibt es:
Exception in thread "main"
java.lang.NoClassDefFoundError:
NDriver
Ich würde schätzen jede Hilfe.
InformationsquelleAutor James | 2009-12-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Sie benötigen, um die Gläser verwendet, bei der Kompilierung auf dem classpath, wenn läuft der Anwendung. Traurig ist, dass Ihr nicht jedes detail auf, wie Sie tatsächlich läuft, so ist es schwer zu mehr Orientierung.
UPDATE: Das Verzeichnis mit den kompilierten Klassen Hinzugefügt werden muss, um den classpath zu. Wenn Sie starten
java
aus dem Verzeichnis mit den kompilierten Klassen, dann können Sie.
zu benennen, die das aktuelle Verzeichnis. Fügen Sie dem classpath wie folgt zu sagenjava
zu achten Klassen auch dort (ich habe.
direkt nachactivemq-all-5.1-SNAPSHOT.jar
):InformationsquelleAutor Pascal Thivent
Einen Weg (leicht unterschiedliche Variablen als bei Euch)
Natürlich auch hier gehe ich davon aus, das Sie erstellen ein Glas und es läuft (einschließlich der classpath dort). Eine andere option wäre, eine
run
Ziel, die Nutzung der<java>
tag und explizit den classpath gibt.InformationsquelleAutor Davide
Sind die jar-Bibliotheken enthalten, die in der Umgebungsvariable classpath beim ausführen des Programms? Eclipse automatisch hinzufügen diese, aber Sie müssen angeben, wenn Sie führen Sie das Programm aus der Kommandozeile.
InformationsquelleAutor Andreas Kraft
Aus meiner Erfahrung scheint es Eclipse wird oft auch die Klassen und jar-Dateien im Klassenpfad ohne explizit über die classpath-Erklärung. In der Tat kann es manchmal sehr schwierig sein, zu entfernen, die Klassen von Eclipse zu bauen (Sie werden gelöscht oder sauber').
InformationsquelleAutor peter.murray.rust