Wie erstelle ich ein JAR mit externen Bibliotheken, die in Eclipse enthalten sind?

89

Ich bin mit dem Projekt fertig, das eine Verbindung zur Datenbank (MySQL) herstellt. Jetzt möchte ich das Projekt als jar exportieren. Aber ich weiß nicht, wie ich seine externen Abhängigkeiten einbeziehen soll? Gibt es eine Möglichkeit, dies in Eclipse zu tun, oder sollte ich dafür Skripte verwenden?

Ghanta Sairam
quelle
Wie wollen Sie die App liefern? an den Endbenutzer? Ein Netzwerk / Internet, eine Festplatte oder ein Flash-Laufwerk, ... noch etwas? Tut die App. eine GUI haben?
Andrew Thompson

Antworten:

140

Wenn Sie Ihr Projekt als 'Runnable JAR' exportieren (rechte Maustaste auf Projekt -> Exportieren -> Runnable JAR), haben Sie die Möglichkeit, alle Abhängigkeiten in das generierte JAR zu packen. Es gibt auch zwei andere Möglichkeiten (siehe Screenshot), um Ihre Bibliotheken zu exportieren. Beachten Sie die Lizenzen, wenn Sie entscheiden, welche Verpackungsmethode Sie verwenden möchten.

Paketbibliotheken

Die Dropdown-Liste "Startkonfiguration" enthält Klassen, die eine main(String[])Methode enthalten. Die ausgewählte Klasse wird gestartet, wenn Sie das Glas ausführen.

Beim Exportieren als ausführbares JAR werden die Abhängigkeiten von Ihrem Erstellungspfad verwendet (rechte Maustaste auf Projekt -> Erstellungspfad -> Erstellungspfad konfigurieren ...). Wenn Sie als 'reguläres' (nicht ausführbares) JAR exportieren, können Sie eine beliebige Datei in Ihren Projekten auswählen. Wenn Sie die Bibliotheken in Ihrem Projektordner haben, können Sie sie einschließen, aber beispielsweise externe Abhängigkeiten, kann nicht aufgenommen werden (für Maven-Projekte hier suchen ).

Joost
quelle
2
@ Joost: Sir, ich bekomme keine Option unter der Überschrift Startkonfiguration, wenn ich versuche, eine Java-Anwendung als ausführbares JAR zu exportieren. Was könnte falsch sein oder fehlen?
Rat-a-tat-a-tat Ratatouille
Eclipse listet die main()Methoden auf, die es kennt. Versuchen Sie, Ihre Anwendung einmal auszuführen (Rechtsklick auf Projekt, Ausführen als, Java-Anwendung) und exportieren Sie sie erneut.
Joost
Das ist für diese Frage nicht relevant, da Eclipse eindeutig angegeben ist. Bitte posten Sie eine neue Frage, wenn Sie keine Antwort finden können (was sicherlich schon irgendwo auf dieser Seite ist)
Joost
1
Weiß jemand, wie man das für ein nicht lauffähiges Glas in Eclipse macht? Es gibt keine Optionen für 'erforderliche Bibliotheken'.
jb1
@ jb1 Hast du das jemals herausgefunden?
TheKingElessar
8

Mit dem Export-> Java-> Runnable Jar können Sie ein Jar erstellen, das seine Abhängigkeiten enthält

Alternativ können Sie auch das Fatjar Eclipse-Plugin verwenden, um Gläser zu bündeln

Attila
quelle
5

Sie können mit der rechten Maustaste auf das Projekt klicken, auf Export klicken, 'jar' eingeben und 'Runnable JAR File Export' auswählen. Dort haben Sie die Option 'Erforderliche Bibliotheken in generierte JAR extrahieren'.

maerch
quelle
3

Persönlich,

Keine der oben genannten Antworten hat bei mir funktioniert. Ich habe immer noch NoClassDefFound-Fehler erhalten (ich verwende Maven für Abhängigkeiten). Meine Lösung bestand darin, mit "mvn clean install" zu erstellen und die von diesem Befehl erstellte "[project] -jar-with-dependencies.jar" zu verwenden. In ähnlicher Weise können Sie in Eclipse mit der rechten Maustaste auf das Projekt klicken -> Ausführen als -> Maven installieren. Die Gläser werden dann im Zielordner abgelegt.

SMKS
quelle
2

Wenn Sie alle JAR-Dateien eines Java-Webprojekts exportieren möchten, öffnen Sie die zuletzt generierte WAR-Datei mit einem ZIP-Tool (zB 7-Zip) und navigieren Sie zum Ordner / WEB-INF / lib /. Hier finden Sie alle JAR-Dateien, die Sie für dieses Projekt benötigen (wie unter "Referenzierte Bibliotheken" aufgeführt).

Peter Saitz
quelle
0

Stellen Sie beim Exportieren Ihrer Quelle in ein JAR sicher, dass Sie unter den Optionen die Option "Ausführbares JAR" auswählen. Wählen Sie dann aus, ob Sie alle Abhängigkeitsgläser verpacken oder einfach direkt in die JAR-Datei aufnehmen möchten. Dies hängt von dem Projekt ab, an dem Sie arbeiten.

Anschließend führen Sie das Glas direkt mit java -jar example.jar aus.

Charan Raj
quelle
0

Um eine JAR-Datei in Eclipse zu generieren, klicken Sie mit der rechten Maustaste auf das Projekt, für das Sie eine JAR-Datei generieren möchten. Wählen Sie Exportieren> Java> Ausführbare JAR-Datei.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Das Erstellungsglas enthält alle Abhängigkeiten von Pom.xml. Stellen Sie jedoch sicher, dass Lizenzprobleme vorliegen, wenn Sie Abhängigkeiten von Drittanbietern für Ihre Anwendung verwenden.

Rohit
quelle
0

Wenn es sich um ein eigenständiges Java-Projekt (Hauptmethode) handelt, setzen Sie mit keinem Rechtspfad alle Gläser in das Projekt und keinen bestimmten Pfad. Klicken Sie dann mit der rechten Maustaste auf das Projekt -> Exportieren -> Ausführbares Glas -> Wählen Sie die Mittagskonfiguration und das Bibliothekshandling aus Wählen Sie dann die Optionsfeldoption "Erforderliche Bibliotheken in generiertes JAR packen" -> Fertig stellen.

Oder

Wenn Sie ein Webprojekt haben, legen Sie alle Gläser im Ordner web-inf / lib ab und führen Sie den gleichen Schritt aus.

JitenS
quelle