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?
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:
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ì)
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
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.
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.