Java Eclipse: differenza tra l'esportazione come JAR e l'esportazione come JAR eseguibile


87

Qual è la differenza in eclipse tra l'esportazione come file JAR e l'esportazione come file JAR eseguibile? Non sono entrambi eseguibili? Quali sono i pro / contro di ciascuno?

Risposte:


98

Il jar eseguibile contiene un file MANIFEST.MF, che definisce la classe Main da eseguire quando viene eseguito il jar.

I jar non eseguibili sono solo librerie di classi, che possono essere aggiunte al classpath in modo che il codice venga riutilizzato (contiene anche il file manifest, ma nessuna classe principale lì)


Quando esportiamo un file come un jar invece di un jar eseguibile, dobbiamo specificare la classe principale e il percorso di classe della libreria in manifest.mf.
MR AND

20

Un jar eseguibile è un file jar che ha un file manifest incorporato che include la dichiarazione "Main-Class:". La "Main-Class" deve essere definita in modo che il runtime java sappia quale classe chiamare quando il jar viene "eseguito". Se un jar non include un manifest con "Main-Class:" non è considerato un "jar eseguibile" - è solo una libreria di codice Java.

Immagino che questa sia la differenza nel modo in cui Eclipse esporta il vaso, ma non è sicuro al 100%.

Vedere questo collegamento per maggiori informazioni: http://www.skylit.com/javamethods/faqs/createjar.html


17

Con il file JAR standard, è necessario specificare la classe con il metodo principale sulla riga di comando quando si esegue il jar. Con un JAR eseguibile, è disponibile un file manifest che conterrà tali informazioni in modo che tu possa semplicemente digitarlo java -jar myRunnable.jaro semplicemente fare doppio clic su di esso.


0

Nel mio caso, esportavo come jar quando avevo tutta la classe principale e tutte le directory del percorso delle librerie specificate nel manifest.mf. Se molte applicazioni utilizzano la stessa libreria, non è necessario esportare la libreria condivisa per ogni jar. Rende più veloce l'esecuzione di jar. Tuttavia, molte volte a causa di problemi di configurazione in un percorso di classe del server diverso non è possibile accedere alla libreria e in quel caso ha senso esportare il jar eseguibile che rende il file lento e di grandi dimensioni.

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.