Eclipse - Export - Jar

Hallo,

ich habe ein ähnliches Problem mit meiner ausführbaren Jar. Bisher habe ich immer die göbste Methode benutzt um externe Jars in meiner ausführbaren Jar verfügbar zu machen, indem ich die benötigten Jars ausgepackt habe und die class-Dateien in der Ordner-Struktur per Archive-Programm einfach hinzugefügt habe.

Das klappte immer hervorragend. Nun aber wird auf einmal eine der class Dateien nicht mehr gefunden (NoClassDefFoundError), obwohl ich sie meiner generierten Jar sehen kann und sie in dem richtigen Ordner liegt.

Hat jemand eine Idee woran es liegen kann oder wo mein Fehler liegt?

Grüße,
mxm
 
Hmm, pack deine Jar-Datei doch mal aus und schau was dann passiert, also ob er die Klasse immernoch nicht findet. Und was du da siehst ist doch hoffentlich die .class-Datei und nicht .java :)

Ansonsten: Beispielsweise im Prosyst-OSGi-Framework (da sind die einzelnen Bundles natürlich auch alles Jar-Dateien, die ausgeführt werden), bedeutet eine NoClassDefFoundError-Exception nicht, dass die Klasse nicht gefunden wurde, sondern dass "irgendeine" andere Klasse nicht gefunden wurde, die in der, die in der Exception genannt wurde, verwendet wird. Vielleicht ist das bei dir ja was ähnliches?

Andere Idee wäre noch: Hast du vielleicht rein zufällig das Jar, wo du das rauskopiert hast, im Classpath stehen oder irgendwas anderes, wo eine Klasse den identischen Pfad und Namen hat? Das gibt manchmal auch die wunderlichsten Fehler, wenn Klassen doppelt vorhanden sind ... :)
 
Hmm, pack deine Jar-Datei doch mal aus und schau was dann passiert, also ob er die Klasse immernoch nicht findet. Und was du da siehst ist doch hoffentlich die .class-Datei und nicht .java :)

Schön wärs, aber ganz so einfach ists leider nicht. :)

Ansonsten: Beispielsweise im Prosyst-OSGi-Framework (da sind die einzelnen Bundles natürlich auch alles Jar-Dateien, die ausgeführt werden), bedeutet eine NoClassDefFoundError-Exception nicht, dass die Klasse nicht gefunden wurde, sondern dass "irgendeine" andere Klasse nicht gefunden wurde, die in der, die in der Exception genannt wurde, verwendet wird. Vielleicht ist das bei dir ja was ähnliches?

Du hast Recht. Genau das ist bei mir der Fall. Ich hatte ich das auch schon beobachtet. Meiner Meinung nach müsste die in diesem Fall benutzende Klasse aber bereits enthalten gewesen sein. Habe aber noch mal alles neu eingefügt.

Andere Idee wäre noch: Hast du vielleicht rein zufällig das Jar, wo du das rauskopiert hast, im Classpath stehen oder irgendwas anderes, wo eine Klasse den identischen Pfad und Namen hat? Das gibt manchmal auch die wunderlichsten Fehler, wenn Klassen doppelt vorhanden sind ... :)

Danke das wars wohl. Ich habe Classpath verändert und jetzt klappts erstmal wieder.

Grüße,
mxm
 
In Eclipse gibt es auch die Funktion "Export runnable Jar-File", bei dem die kompletten libs mit exportiert werden.
Hab das hier über Google gefunden und das ist auch eine Möglichkeit wie es geht.
 
einfach
links Klasse anwählen
dann export - executable jar File
dann kann man anklicken, wie benutzte jars eingebunden werden sollen.
 
Zurück