Libraries in einem Jar-File

dadevelopa

Mitglied
Hallo zusammen,
ich habe ein kleines Problem mit einem Jar-File.
Ich habe einen kleinen Server geschrieben, den ich gerne via Jar File verpacken würde um ihn so einfach zu starten.
Dieser Server verwendet dom4j, und hier tritt wohl auch das Problem auf. Wenn ich den Server via Eclipse starte, funktioniert alles wunderbar.
Das Exportierte Jar-File funktioniert jedoch nicht, da irgendwie die gewünschten Klasse nicht gefunden werden. Es tritt folgende Fehlermeldung auf:
Code:
Exception in thread "main" java.lang.NoClassDefFoundError: /org/dom4j/DocumentException

Könnt ihr mir bei diesem Problem wohl helfen?
 
Hab ich gemacht, jedoch scheint es trozdem nicht zu funktionieren.
Könnte es damit zusammenhängen, dass ich in Eclipse die Java-Version 1.4.2_08 verwende, in meiner sonstigen Umgebung jedoch die Version 1.5?
 
Hallo!

Schau mal hier:
http://www.tutorials.de/tutorials212854.html&highlight=jar

Beispiel:
Das ausfuehrbare foo.jar enthaelt:
die Bibliotheken barA.jar und barB.jar, und sonstige Klassen/Resourcen der Anwendung.

Um nun innerhalb von foo.jar auf Klassen innerhalb von barA.jar und barB.jar zugreiffen zu koennen, brauchst du entweder:
1) Einen eigenen ClassLoader der Classen auch in genesteten Jar-Archiven (Jar in Jar findet)
ODER:
2) Beim bootstrapping der Anwendungen entpackst du die enthaltenen jar Dateien in ein temporaeres Verzeichnis und fuegst es dynamisch zum Anwendungs-ClassPath hinzu.
ODER:
3) Du verwendest einen Mechanismus wie ihn beispielsweise das FatJar Eclipse Plugin bietet und entpackst alle Klassen in ein Verzeichnis und machst dann daraus ein jar (ohne jars im jar).
ODER:
4) Du entpackst die genesteten JARs und legst sie deiner Anwendung in einem entsprechenden Verzeichnis ab (z.Bsp. lib relativ zu der Anwendungs.jar).
Dann nimmst du alle JARs dieses Lib Verzeichnis explizit in den ClassPath auf:
java -cp ./lib/barA.jar;./lib/barB.jar -jar foo.jar

Gruss Tom
 

Neue Beiträge

Zurück