Crea automaticamente un progetto in un JAR in Eclipse


171

Ho un progetto Eclipse in cui voglio mantenere automaticamente il mio progetto Java integrato in un JAR. So di avere un'opzione per esportare il progetto in un JAR; se faccio un clic destro; ma quello che sto veramente cercando è che come Eclipse crea automaticamente i .classfile di un progetto e li inserisce nella cartella di destinazione; dovrebbe anche creare automaticamente un JAR e copiare l'ultimo JAR in una o in una posizione specifica.

Esiste un'opzione per configurare Eclipse in modo tale da creare automaticamente JAR?

Giusto per chiarire ai ragazzi, abbastanza paziente da rispondere alla mia domanda; Non sto vedendo ANT come soluzione; come già lo uso, ma cosa mi piacerebbe qualcosa che viene avviato automaticamente o con un trigger basato sul tempo o build immediata con il cambiamento.


1
La mia opinione personale: usa m2e, l'integrazione di Maven di Eclipse, quindi genera un vaso per te come parte della build. Di recente ho provato a usare Eclipse senza Maven e non riesco a credere a quanto sia primitivo il builder Java di base.
Craig Ringer,

1
Per il 2018 utilizzare uno strumento di generazione anziché la funzionalità specifica IDE. Maven acquista indipendenza IDE e supporto da riga di comando.
Thorbjørn Ravn Andersen,

@Craig Ringer - esiste un link su come farlo?
nsandersen,

Risposte:


27

Dai un'occhiata a Apache Ant

È possibile utilizzare Ant per build automatiche con eclipse, ecco come


Sto già usando la formica Apache per fare le build e creare Jar. Ma quello che stavo davvero cercando era un modo per aggirare la formica apache e usare direttamente l'eclissi.
Priyank,

Mi scuso, non ho esaminato l'articolo nel link prima. Parla davvero di ciò di cui ho bisogno. Grazie.
Priyank,

1
La risposta di Konrad corrisponde più da vicino a ciò che l'OP stava cercando.
Lycono,

lycono, non sono d'accordo - l'OP voleva che il barattolo venisse aggiornato, e l'esportazione di un file jar non cerca di risolvere questo problema.
James Moore,

1
Nel luglio 2011, l'articolo a cui fa riferimento @Peter non parla affatto di come creare un file jar.
James Moore,

288

Vuoi un .jardescfile. Non si avviano automaticamente, ma entro 2 clic.

  1. Fai clic destro sul tuo progetto
  2. Scegliere Export > Java > JAR file
  3. Scegli i file inclusi e nome JAR di output, quindi fai clic su Next
  4. Seleziona "Salva la descrizione di questo JAR nell'area di lavoro" e scegli un nome per il nuovo .jardescfile

Ora, tutto ciò che devi fare è fare clic con il tasto destro sul tuo .jardescfile e scegliere Create JARe lo esporterà nello stesso punto.


Triste che questa risposta non abbia ottenuto più voti (o migliore risposta) mesi fa. Oh bene, ormai Konrad non c'è più.
Dan Rosenstark,

25
In Eclipse Galileo, ho dovuto sostituire il passaggio 1 con File -> Esporta -> Java -> File JAR.
Matt Huggins,

9
Esiste un modo per automatizzare il passaggio "clic destro -> Crea JAR"?
Asaf,

4
C'è un modo per automatizzare il passaggio "clic destro -> Crea JAR" o associarlo a una combinazione di tasti?
Pacerier,

5
Uso "Esporta ... -> Java -> File JAR eseguibile" per creare esattamente questo.
TedTrippin,

70

Crea un file Ant e dì a Eclipse di costruirlo. Ci sono solo due passaggi e ognuno è facile con le istruzioni dettagliate di seguito.


Passaggio 1 Creare un file build.xml e aggiungerlo a Esplora pacchetti:

<?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 dovrebbe assomigliare a quello dello screenshot qui sotto. Nota l'icona della formica su build.xml. Build.xml nel progetto Eclipse

Passaggio 2 Fare clic con il pulsante destro del mouse sul nodo principale nel progetto. - Seleziona proprietà - Seleziona costruttori - Seleziona nuovo - Seleziona formica - Nella scheda Principale, completa il percorso del file build.xml nella cartella bin .

Configurazione del generatore di formiche Fase di creazione: scheda Target

Controlla l'uscita

La finestra di output di Eclipse (denominata Console) dovrebbe mostrare quanto segue dopo una build:

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

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

EDIT: alcuni commenti utili di @yeoman e @betlista

@yeoman Penso che l'inclusione corretta sarebbe /.class, non * .class, poiché la maggior parte delle persone usa pacchetti e quindi la ricerca ricorsiva di file di classe ha più senso dell'inclusione piatta

@betlista Consiglierei di non avere build.xml nella cartella src


2
Sì, puoi scegliere gli obiettivi per la fase di creazione come segue: Dopo una pulizia, Creazione manuale, Creazione automatica e Durante una pulizia. Auto Build dovrebbe darti quello che vuoi :)
Thomas Bratt,

8
Dopo aver provato entrambi, questa soluzione sembra molto migliore di quella di Konrad. Richiede di capire manualmente alcuni percorsi nel file di compilazione, ma consente la compilazione automatica (anziché 2 clic) e consente una facile personalizzazione (ad esempio, copiare il vaso dopo la compilazione). Ecco come creare un file jar quando si ha il file build nella radice e si hanno più livelli nidificati di pacchetti:<jar jarfile="dist/mypackage.jar" basedir="bin/" includes="**/*.class" />
worldsayshi,

3
+1 In che modo questa non è la risposta accettata e nemmeno la più votata?
Juan Garcia,

2
Grazie mille. Consiglierei di non avere build.xmlnella cartella src, ma il resto funziona bene, fantastico!
Betlista,

1
Penso che l'inclusione corretta sia / .class, non * .class, poiché la maggior parte delle persone usa pacchetti e quindi la ricerca ricorsiva di file di classe ha più senso dell'inclusione piatta. Rimuoverò il mio +1 fino ad allora perché la risposta di solito non funziona così com'è.
yeoman,

13

Questo è possibile definendo un Builder personalizzato in eclipse (vedi il link nella risposta di Peter). Tuttavia, a meno che il progetto non sia molto piccolo, potrebbe rallentare in modo inaccettabile lo spazio di lavoro. L'autocostruzione per i file di classe avviene in modo incrementale, ovvero solo le classi interessate da una modifica vengono ricompilate, ma il file JAR dovrà essere ricostruito e copiato completamente, ogni volta che si salva una modifica.



1

Utilizzando la risposta di Thomas Bratt sopra, assicurati solo che build.xml sia configurato correttamente:

<?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>

(Notare il doppio asterisco : dirà a build di cercare i file .class in tutte le sottodirectory.)


0

La creazione di un programma di avvio del generatore è un problema poiché 2 progetti non possono avere lo stesso nome di build dello strumento esterno. Ogni nome deve essere unico. Attualmente sto affrontando questo problema per automatizzare la mia build e copiare il JAR in una posizione esterna.

Sto usando IBM Zip Builder, ma è solo un aiuto, ma non sto facendo il vero.

Le persone possono provare a utilizzare il plug-in IBM ZIP Creation. http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer2.html#download

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.