2013-02-04 7 views
9

In Verarbeitung möchte ich eine Bibliothek importieren, die ich in Java geschrieben habe und die eine externe Bibliothek (eine JAR-Datei) umschließt.Wie exportiert man ein Eclipse-Projekt mit externen Jar-Abhängigkeiten?

Die Verarbeitung scheint meine eigene Bibliothek zu importieren, aber wenn ich den Konstruktor (der auf einige Klassen in der externen Bibliothek verweist) aufruft, erhalte ich in der Processing GUI eine java.lang.NoClassDefFoundError.

Wenn ich anstelle der externen .jar in meinem Eclipse-Buildpath verwende ich den tatsächlichen Quellcode der Bibliothek und exportieren Sie alles, Verarbeitung nicht zu beanstanden.

Wie kann ich dieses Projekt zusammenpacken, damit ich nicht den gesamten Quellcode der Bibliothek in mein Eclipse-Projekt einfügen muss (und stattdessen nur die .jar-Datei einschließen muss)?


aktualisieren: Wie pro N.L.telaviv ‚s Vorschlag, wählte ich als Runnable JAR zu exportieren. Was für mich funktionierte, war die Option "Kopiere benötigte Bibliotheken in einen Unterordner neben dem generierten JAR". Hier wird ein weiterer Ordner neben dem Speicherort Ihrer .jar-Datei mit den referenzierten .jar-Bibliotheken erstellt.

Update2: Die andere Option, die funktioniert, ist "extrahieren erforderliche Bibliotheken in generierte JAR." Auf diese Weise kann das JAR intern auf die Referenzen zugreifen. Es schien, als ob das mit N.L.telavivs Vorschlag funktioniert hätte, aber das scheint nicht der Fall zu sein. Wählen Sie diese Option, wenn Sie keine zusätzlichen Dateien haben möchten. Wenn Sie die JAR-Datei durchsuchen, stellen Sie fest, dass sich die externe Bibliothek in einem separaten Paketordner befindet.

+0

Hallo, ich habe alle diese Optionen choosed, aber niemand für mich arbeitete. Kannst du mir sagen, was das Problem sein wird? Vielen Dank! –

Antwort

6

Verwenden Sie die ausführbare JAR-Dateiexportoption.

Klicken Sie auf Ihr Projekt - Export - Java- runnable JAR-Datei - die Option auswählen, um erfordert Bibliotheken in den Topf zu packen

+0

Ich habe das gerade versucht, kein Glück. Der einzige Unterschied hier war, dass mit dem Import von MyProjectPackage. *, Verarbeitung importiert auch org.eclipse.jdt.internal.jarinjarloader. * – funseiki

+0

überprüfen Sie, dass die Klassenpfaddefinition in der MANIFEST jedes JAR enthält – Nimrod007

+0

Beziehen Sie sich auf die .classpath Datei? Wenn das der Fall ist, dann hat es das .jar. Ich habe auch festgestellt, dass es funktioniert, wenn ich die Option "Kopiere benötigte Bibliotheken in einen Unterordner neben dem generierten JAR" auswähle, anstatt in das generierte JAR zu packen. – funseiki