Come creare un jar con librerie esterne incluse in Eclipse?


89

Ho finito con il progetto che si collega al database (MySQL). Ora voglio esportare il progetto come jar. Ma non so come includere le sue dipendenze esterne? C'è un modo per farlo in Eclipse o dovrei usare degli script per questo ?.


Come intendi fornire l'app. all'utente finale? Una rete / Internet, un disco o un'unità flash, ... qualcos'altro? L'app. hai una GUI?
Andrew Thompson

Risposte:


140

Quando esporti il ​​tuo progetto come 'Jar eseguibile' (tasto destro del mouse sul progetto -> Esporta -> Jar eseguibile) hai la possibilità di impacchettare tutte le dipendenze nel jar generato. Ha anche altri due modi (vedi screenshot) per esportare le tue librerie, fai attenzione alle licenze quando decidi quale metodo di pacchettizzazione userai.

Librerie di pacchetti

Il menu a discesa "configurazione di avvio" è popolato con classi contenenti un main(String[])metodo. La classe selezionata viene avviata quando "esegui" il vaso.

L'esportazione come jar eseguibile utilizza le dipendenze dal percorso di compilazione (tasto destro del mouse sul progetto -> Percorso di compilazione -> Configura percorso di compilazione ...). Quando esporti come un jar 'normale' (non eseguibile) puoi selezionare qualsiasi file nei tuoi progetti. Se hai le librerie nella cartella del tuo progetto, puoi includerle ma dipendenze esterne, ad esempio, non può essere incluso (per progetti Maven, cerca qui ).


2
@ Joost: signore, non ottengo alcuna opzione sotto l'intestazione della configurazione di avvio quando provo a esportare un'applicazione java come jar eseguibile. Cosa potrebbe esserci di sbagliato o mancante?
Rat-a-tat-a-tat Ratatouille

Eclipse elenca i main()metodi di cui è a conoscenza. Prova a eseguire l'applicazione una volta (fai clic con il pulsante destro del mouse su progetto, Esegui come, Applicazione Java) e poi esporta di nuovo.
Joost

Ciò non è pertinente per questa domanda, poiché afferma chiaramente Eclipse. Pubblica una nuova domanda se non riesci a trovare una risposta (che sicuramente è già da qualche parte su questo sito)
Joost

1
Qualcuno sa come farlo per un vaso non eseguibile in Eclipse? Non ci sono opzioni relative alle "librerie richieste".
jb1

@ jb1 L'hai mai capito?
TheKingElessar

8

Puoi usare Export-> Java-> Runnable Jar per creare un jar che include le sue dipendenze

In alternativa, puoi usare il file plugin fatjar eclipse per raggruppare i jar insieme


5

È possibile fare clic con il pulsante destro del mouse sul progetto, fare clic su Esporta, digitare "jar", scegliere "Esporta file JAR eseguibile". Lì hai l'opzione 'Estrai le librerie richieste nel JAR generato'.


3

Personalmente,

Nessuna delle risposte sopra ha funzionato per me, ho comunque continuato a ricevere errori NoClassDefFound (sto usando Maven per le dipendenze). La mia soluzione era creare utilizzando "mvn clean install" e utilizzare "[project] -jar-with-dependencies.jar" creato da quel comando. Allo stesso modo in Eclipse puoi fare clic con il pulsante destro del mouse sul progetto -> Esegui come -> Installa Maven e posizionerà i vasi nella cartella di destinazione.


2

Se vuoi esportare tutti i file JAR di un progetto web Java, apri l'ultimo file WAR generato con uno strumento ZIP (ad esempio 7-Zip), vai alla cartella / WEB-INF / lib /. Qui troverai tutti i file JAR necessari per questo progetto (come elencato in "Biblioteche di riferimento").


0

Durante l'esportazione del codice sorgente in un jar, assicurati di selezionare l'opzione jar eseguibile dalle opzioni. Quindi seleziona se desideri impacchettare tutti i jar delle dipendenze o semplicemente includerli direttamente nel file jar. Dipende dal progetto su cui stai lavorando.

Quindi esegui il jar direttamente da java -jar example.jar.


0

Per generare il file jar in eclipse, fai clic con il tasto destro sul progetto per il quale desideri generare, seleziona Esporta> Java> File Jar eseguibile,

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Crea un barattolo che include tutte le dipendenze da Pom.xml, ma assicurati che il problema con la licenza sia quello di utilizzare dipendenze di terze parti per la tua applicazione.


0

Se si tratta di un progetto java autonomo (metodo principale), nessun percorso specifico metti tutti i barattoli all'interno del progetto, non un percorso specifico, quindi fai clic con il pulsante destro del mouse sul progetto -> esporta -> vaso eseguibile -> seleziona la configurazione del pranzo e la gestione della libreria quindi scegliere l'opzione del pulsante di opzione "Pacchetto librerie richieste nel vaso generato" -> Fine.

O

Se hai un progetto web, metti tutti i vasi nella cartella web-inf / lib e fai lo stesso passaggio.

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.