2009-07-20 14 views
1

Ich habe ein Java-Programm, das auf eine Jar-Datei verweist.Java Classpath Problem

die JAR-Datei ist in dem selben Verzeichnis wie die .class-Datei, aber wenn ich versuche, das Programm von der Konsole laufen zu lassen, ich NoClassDefFound Fehler bekommen :-(

Alternativ läuft es Ok von Eclipse-.

Warum

Antwort

7

Das java Programm wird nicht automatisch enthalten JAR-Dateien in seiner Klasse Pfad Sie eine JAR-Datei über die -classpath Option auf den Klassenpfad hinzufügen zum Beispiel:?..

java -classpath .;yourJarFile.jar your.MainClass 

Eclipse fügt automatisch die JAR-Datei hinzu, wenn Sie das Programm ausführen.

Hinweis: Die Option -classpath erwartet ein Semikolon (;) unter Windows und einen Doppelpunkt (:) andernfalls.

+0

ich Sie richtig sind erraten. Nun, wenn die Jar-Datei eine andere Jar-Datei verwendet, sollte ich das auch hinzufügen? – Geek

+0

Leider, ja. http://en.wikipedia.org/wiki/Dependency_hell –

+0

http://en.wikipedia.org/wiki/JAR_hell#JAR_hell –

3

JAR-Dateien werden nicht automatisch in den Klassenpfad aufgenommen. Sie können einen Class-Path Eintrag und einen Main-Class Eintrag in die JAR-Datei einfügen, die die Hauptmethode enthält, die Sie ausführen möchten. Dann können Sie Ihren Code wie so ausführen:

java -jar yourJarFile.jar 

die JAR File Specification Details für mehr sehen.

oder den Classpath auf der Kommandozeile angeben:

java -classpath lib1.jar:lib2.jar:yourJarFile.jar your.MainClass