Eclipse + exportieren einer JAR Datei + abhaengigkeit mit anderer JAR Datei



  • Hallo allerseits,

    wie ich ein Projekt in eine JAR Datei exportiere ist kein Problem. Nur ich
    habe eine Abhaengigkeit mit einer anderen JAR Datei und bekomme dann beim
    Ausfuehren der JAR Datei folgenden Fehler:

    Exception in thread "main" java.lang.NoClassDefFoundError: org/jdesktop/layout/G
    roupLayout$Group
    at gui.Main.main(Main.java:17)

    Er findet also die Klassendefinition nicht, die JAR Datei, in der sich diese
    Klassendefinition befindet, wurde allerdings auch mit exportiert. Was muss ich
    machen, damit es funktioniert?

    gruss
    v R



  • Ja, also in JAR-Files gibt es eine sog. Manifest Datei, die kann z.B. so aussehen:
    Manifest-Version: 1.0
    Main-Class: com.mypackage.MyClass
    Class-Path: jdom.jar
    < Leerzeile >

    Mit Main-Class gibst du die Klasse (bzw. das Package+Klasse) an, wo die Ausführung des JAR-Files beginnt (also da wo die main-methode ist). Ist bei dir ja aber nicht das Problem. Mit Class-Path gibst du dann eben noch an, wo er nach zusätzlichen Bibliotheken suchen soll. Und da hängts bei dir wohl. Hier in meinem Beispiel würde er jetzt im selben Verzeichnis wo sich mein JAR befindet nach einem weiteren JAR (jdom.jar) suchen und das dann einbeziehen.
    Ich weiß jetzt nicht inwiefern du das in Eclipse auch angeben kannst, wo er nach zusätzlichen JARs suchen soll. Könnte sogar sein, dass das gar nicht geht. Normalerweise verwendet man für sowas sowieso nicht Eclipse, sondern ein Ant-Skript (weil man da eben viel mehr Möglichkeiten hat).
    Du kannst ja mal dein JAR mit Zip öffnen, und nach dieser manifest datei suchen und diese dann anzeigen (heißt normalerweise MANIFEST.MF oder so). Ich denke da ist dann wohl kein Class-Path angegeben bzw. kein korrekter.

    P.S.:
    Du kannst übrigens auch dein zusätzliches JAR File auf das du die Abhängigkeit hast, in dein selbst erstelltes JAR File reinpacken, so dass du das dann gar nicht mehr brauchst. Sollte für dich wohl sogar die bessere Variante momentan sein, weil so kannst du Eclipse weiterin benutzen und musst dann anschließend nur noch 2-3 Befehle absetzen um das deinem JAR hinzuzufügen. Wie das geht, siehe http://www.java-forum.org/de/viewtopic.php?t=13075.



  • Nabend,

    danke fuer die Hilfe, hat mich schon weitergebracht, jetzt funktionierts :).

    Und damit das auch immer so bleibt, hab ich mir in Eclipse ein Plugin installiert,
    mit dessen Hilfe auch die Abhaengigkeit mit exportiert wird :).

    gruss
    v R


Anmelden zum Antworten