2012-06-14 20 views
72

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 creare un jar con librerie esterne incluse in Eclipse?

+0

Come intendete consegnare l'app. all'utente finale? Una rete/internet, un disco o un'unità flash, qualcos'altro? Fa l'app. avere una GUI? –

risposta

113

Quando esporti il ​​tuo progetto come un 'Runnable jar' (tasto destro del mouse sul progetto -> Esporta -> jar eseguibile) hai la possibilità di raggruppare 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 imballaggio utilizzerai.

Package libraries

La 'configurazione di lancio' discesa è popolato con classi contenente un metodo main(String[]). La classe selezionata viene avviata quando "esegui" il barattolo.

L'esportazione come un contenitore eseguibile utilizza le dipendenze sul percorso di generazione (Mouse destro sul progetto -> Percorso di creazione -> Configura percorso di generazione ...). Quando esporti come jar 'normale' (non eseguibile) puoi selezionare qualsiasi file nei tuoi progetti. Se si dispone delle librerie nella cartella del progetto, è possibile includerle ma non è possibile includere dipendenze esterne, ad esempio (per progetti di utilità, search here).

+0

perfect ... thanks –

+0

@Joost: signore, non ho alcuna opzione sotto l'intestazione di configurazione di avvio quando provo ad esportare un'applicazione java come un jar eseguibile. Cosa potrebbe essere sbagliato o mancante? –

+0

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

7

È possibile utilizzare l'Esporta-> Java-> Jar Runnable per creare un vaso che comprende le sue dipendenze

In alternativa, è possibile utilizzare il fatjar Plug-in Eclipse anche per raggruppare vasetti insieme

4

è possibile fare -Fai clic sul progetto, fai clic su Esporta, digita 'jar', scegli 'Esegui file JAR eseguibile'. Esiste l'opzione 'Estrai librerie richieste in JAR generato'.

0

Durante l'esportazione dell'origine in un barattolo, assicurarsi di selezionare l'opzione del barattolo eseguibile dalle opzioni. Quindi selezionare se si desidera pacchettizzare tutti i jar di dipendenza o semplicemente includerli direttamente nel file jar. Dipende dal progetto su cui stai lavorando.

Si esegue quindi il jar direttamente da java -jar example.jar.

2

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

2

Personalmente,

Nessuna delle risposte sopra funzionato per me, ho ancora continuato a ottenere errori NoClassDefFound (sto usando Maven per le dipendenze). La mia soluzione era quella di creare usando "mvn clean install" e usare "[project] -jar-with-dependencies.jar" che quel comando crea. Analogamente in Eclipse è possibile fare clic con il tasto destro del mouse sul progetto -> Esegui come -> Installazione di Maven e posizionerà i vasi nella cartella di destinazione.

Problemi correlati