Erstellen Sie in Eclipse automatisch ein Projekt in eine JAR

171

Ich habe ein Eclipse-Projekt, in dem ich mein Java-Projekt automatisch in eine JAR integrieren möchte. Ich weiß, dass ich die Option habe, das Projekt in eine JAR zu exportieren. wenn ich einen Rechtsklick mache; aber was ich wirklich suche ist, dass wie Eclipse automatisch die .classDateien eines Projekts erstellt und sie in den Zielordner legt; Es sollte auch automatisch eine JAR erstellen und die neueste JAR an einem bestimmten Ort kopieren.

Gibt es eine Option, um Eclipse so zu konfigurieren, dass JARs automatisch erstellt werden?

Nur um es den Jungs klar zu machen, geduldig genug, um meine Frage zu beantworten; Ich betrachte ANT nicht als Lösung. wie ich es schon benutze, aber was ich möchte, etwas, das automatisch entweder mit einem zeitbasierten Trigger oder sofort mit Build mit Änderung initiiert wird.

Priyank
quelle
1
Meine persönliche Meinung: Verwenden Sie m2e, die Maven-Integration von Eclipse, damit im Rahmen des Builds ein JAR für Sie ausgegeben wird. Ich habe kürzlich versucht, Eclipse ohne Maven zu verwenden und kann nicht glauben, wie primitiv der grundlegende Java-Builder ist.
Craig Ringer
1
Verwenden Sie für 2018 ein Build-Tool anstelle von IDE-spezifischen Funktionen. Maven bietet Ihnen IDE-Unabhängigkeit und Befehlszeilenunterstützung.
Thorbjørn Ravn Andersen
@Craig Ringer - gibt es einen Link dazu?
Nsandersen

Antworten:

27

Schauen Sie sich Apache Ant an

Es ist möglich, Ant für automatische Builds mit Eclipse zu verwenden


quelle
Ich benutze bereits Apache Ant, um die Builds zu machen und Jar zu machen. Aber was ich wirklich suchte, war ein Weg um Apache Ant herum und direkt mit Eclipse.
Priyank
Entschuldigung, ich habe den Artikel im Link vorher nicht durchgesehen. Es spricht in der Tat darüber, was ich brauche. Vielen Dank.
Priyank
1
Die Antwort von Konrad entspricht eher dem, wonach das OP gesucht hat.
Lycono
lycono, ich bin anderer Meinung - das OP wollte, dass das Glas auf dem neuesten Stand gehalten wird, und das Exportieren einer Glasdatei versucht nicht, dieses Problem zu lösen.
James Moore
1
Im Juli 2011 geht es in dem Artikel, auf den @Peter verweist, überhaupt nicht darum, wie eine JAR-Datei erstellt wird.
James Moore
288

Sie möchten eine .jardescDatei. Sie starten nicht automatisch, aber es ist innerhalb von 2 Klicks.

  1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt
  2. Wählen Export > Java > JAR file
  3. Wählen Sie die enthaltenen Dateien und die Namensausgabe-JAR aus und klicken Sie auf Next
  4. Aktivieren Sie "Speichern Sie die Beschreibung dieser JAR im Arbeitsbereich" und wählen Sie einen Namen für die neue .jardescDatei

Jetzt müssen Sie nur noch mit der rechten Maustaste auf Ihre .jardescDatei klicken und auswählen, Create JARund sie wird an derselben Stelle exportiert.

Konrad
quelle
Schade, dass diese Antwort vor Monaten nicht mehr positive Stimmen (oder die beste Antwort) erhalten hat. Na ja, jetzt ist Konrad weg.
Dan Rosenstark
25
In Eclipse Galileo musste ich Schritt 1 durch Datei -> Exportieren -> Java -> JAR-Datei ersetzen.
Matt Huggins
9
Gibt es eine Möglichkeit, den Schritt "Rechtsklick -> JAR erstellen" zu automatisieren?
Asaf
4
Gibt es eine Möglichkeit, den Schritt "Rechtsklick -> JAR erstellen" zu automatisieren oder an eine Tastenkombination zu binden?
Pacerier
5
Ich verwende "Exportieren ... -> Java -> Ausführbare JAR-Datei", um genau das zu erstellen.
TedTrippin
70

Erstellen Sie eine Ant-Datei und weisen Sie Eclipse an, sie zu erstellen. Es gibt nur zwei Schritte und jeder ist mit den folgenden schrittweisen Anweisungen einfach.


Schritt 1 Erstellen Sie eine build.xml-Datei und fügen Sie sie dem Paket-Explorer hinzu:

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <jar jarfile="Test.jar" basedir="." includes="*.class" />
  </target>
</project>

Eclipse sollte ungefähr so ​​aussehen wie der Screenshot unten. Beachten Sie das Ant-Symbol in build.xml. Build.xml in Eclipse Project

Schritt 2 Klicken Sie mit der rechten Maustaste auf den Stammknoten im Projekt. - Eigenschaften auswählen - Builder auswählen - Neu auswählen - Ant Build auswählen - Vervollständigen Sie auf der Registerkarte Main den Pfad zur Datei build.xml im Ordner bin .

Ant Builder Konfiguration Erstellungsschritt - Registerkarte "Ziele"

Überprüfen Sie die Ausgabe

Das Eclipse-Ausgabefenster (mit dem Namen Console) sollte nach einem Build Folgendes anzeigen:

Buildfile: /home/<user>/src/Test/build.xml

CreateJar:
         [jar] Building jar: /home/<user>/src/Test/Test.jar
BUILD SUCCESSFUL
Total time: 152 milliseconds

EDIT: Einige hilfreiche Kommentare von @yeoman und @betlista

@yeoman Ich denke, das richtige Include wäre /.class, nicht * .class, da die meisten Leute Pakete verwenden und daher eine rekursive Suche nach Klassendateien sinnvoller ist als eine flache Inklusion

@betlista Ich würde empfehlen, build.xml nicht im src-Ordner zu haben

Thomas Bratt
quelle
2
Ja, Sie können die Ziele für den Erstellungsschritt wie folgt auswählen: Nach einer Bereinigung, manueller Erstellung, automatischer Erstellung und während einer Bereinigung. Auto Build sollte Ihnen geben, was Sie wollen :)
Thomas Bratt
8
Nachdem Sie beide ausprobiert haben, scheint diese Lösung viel besser zu sein als die von Konrad. Es erfordert, dass Sie einige Pfade in Ihrer Build-Datei manuell herausfinden, aber es ermöglicht die automatische Erstellung (anstelle von 2 Klicks) und eine einfache Anpassung (kopieren Sie das JAR beispielsweise nach der Erstellung). So erstellen Sie eine JAR-Datei, wenn sich die Build-Datei im Stammverzeichnis befindet und mehrere verschachtelte <jar jarfile="dist/mypackage.jar" basedir="bin/" includes="**/*.class" />
Paketebenen vorhanden sind
3
+1 Wie ist dies nicht die akzeptierte Antwort und nicht einmal die am besten gewählte?
Juan Garcia
2
Vielen Dank. Ich würde empfehlen, nicht build.xmlin src Ordner zu haben , aber der Rest funktioniert gut, erstaunlich!
Betlista
1
Ich denke, das richtige Include wäre / .class, nicht * .class, da die meisten Leute Pakete verwenden und daher eine rekursive Suche nach Klassendateien sinnvoller ist als eine flache Inklusion. Entfernt bis dahin meine +1, da die Antwort normalerweise nicht so funktioniert, wie sie ist.
Yeoman
13

Dies ist möglich, indem Sie einen benutzerdefinierten Builder in Eclipse definieren (siehe den Link in Peters Antwort). Wenn Ihr Projekt jedoch nicht sehr klein ist, kann es Ihren Arbeitsbereich inakzeptabel verlangsamen. Die automatische Erstellung von Klassendateien erfolgt schrittweise, dh nur die von einer Änderung betroffenen Klassen werden neu kompiliert. Die JAR-Datei muss jedoch jedes Mal neu erstellt und vollständig kopiert werden, wenn Sie eine Änderung speichern.

Michael Borgwardt
quelle
1

Mit Thomas Bratt ‚s Antwort oben, so stellen Sie sicher , dass Ihr build.xml richtig konfiguriert ist:

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <jar jarfile="Test.jar" basedir="bin/" includes="**/*.class" />
  </target>
</project>

(Beachten Sie das doppelte Sternchen - es weist den Build an, in allen Unterverzeichnissen nach .class-Dateien zu suchen.)

Hugo Leote
quelle
0

Das Erstellen eines Builder-Starters ist ein Problem, da 2 Projekte nicht denselben externen Tool-Build-Namen haben können. Jeder Name muss eindeutig sein. Ich bin derzeit mit diesem Problem konfrontiert, um meinen Build zu automatisieren und die JAR an einen externen Speicherort zu kopieren.

Ich verwende den Zip Builder von IBM, aber das ist nur eine Hilfe, aber nicht das Richtige.

Benutzer können versuchen, das IBM ZIP Creation-Plugin zu verwenden. http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer2.html#download

Anand Bansal
quelle