2010-02-18 8 views
9

Mi piacerebbe avere un'applicazione Java che possa essere facilmente avviata.Come creare un'applicazione Java che può essere eseguita con un clic?

Finora sono riuscito a creare un file jar ma non vedo ancora alcun vantaggio. Prima di eseguire la mia applicazione con "java HelloWorldSwing" e ora utilizzo "java -jar HelloWorldSwing.jar" (che è ancora più complicato del comando precedente e, per quanto ho capito, l'uso di un file jar richiede la presenza di * .mf nella stessa directory).

mi piacerebbe avere uno dei due seguenti situazioni:

  1. Appena un singolo file che può essere copiato su un altro sistema operativo e che il progetto può essere avviato solo con click su questo file in un file browser (al momento se fai clic sul mio file jar, Ubuntu inizia a estrarre l'archivio (perché jar è un archivio, lo so)).

  2. Creare un pittogramma che può essere inserito in un desktop e facendo clic su Avvia il mio programma Java.

+2

"per quanto ho capito, l'utilizzo di un file jar richiede la presenza di file * .MF nella stessa directory" No, il file manifest dovrebbe essere Inserito nel jar stesso con l'opzione da riga di comando '-m manifest 'di' jar' – Powerlord

risposta

2

Ecco alcuni link che possono aiutare u ..

JSmooth è un eseguibile Java Wrapper. Si crea lanciatori native di Windows

http://jsmooth.sourceforge.net/ 

cross-piattaforma Java involucro eseguibile

http://launch4j.sourceforge.net/ 


http://www.captain.at/programming/java/executable-java-application.php 
0

È possibile creare un file jar eseguibile, come descritto qui:

http://csdl.ics.hawaii.edu/~johnson/613f99/modules/04/jar-files.html

Quindi gli utenti possono fare clic su di esso nel browser di file e avviare la classe principale, a condizione che il sistema operativo e le impostazioni di sicurezza dell'utente lo consentano.

+0

Ho appena seguito l'istruzione passo passo. Alla fine ho ottenuto un file jar che avrei potuto eseguire correttamente. Tuttavia, quando apro la cartella con il file jar nel mio browser di file, vedo il file jar come un archivio. Doppio clic sull'archivio avvia l'estrazione dell'archivio. – Roman

+0

Sfortunatamente non si può fare nulla sui browser di file che si rifiutano di eseguire automaticamente le cose (che, dopo tutto, sono spesso un'ottima idea). Anche se hai compilato l'intero JRE e il tuo programma in un enorme .EXE, al giorno d'oggi il gestore di file può benissimo rifiutarsi di eseguirlo perché è un "file scaricato non sicuro", a meno che tu non riesca a ottenere la certificazione della tua applicazione dal fornitore del sistema operativo. È una corsa agli armamenti che alla fine nessuno può vincere. –

9

Creare un jar senza dipendenze L'eseguibile è relativamente semplice. In pratica, è sufficiente specificare nella classe MANIFEST la classe principale da utilizzare. Può quindi essere avviato con java -jar ExecutableJar.jar, ma la maggior parte del SO supporta in questo caso il doppio clic.

Creare un contenitore che dipende dall'eseguibile altro jar è più complicato. Puoi specificare il percorso della classe nel MANIFEST, ma significa comunque che devi copiare più di un jar per distribuire la tua app. Un altro modo è di "impacchettare" il barattolo dipendente nel barattolo principale.

È possibile fare tutto questo con maven e maven-assembly-plugin. Utilizzare jar-with-dependencies preconfigurato descriptor.

<configuration> 
    <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
    </descriptorRefs> 
</configuration> 

La classe principale può essere specificato con qualcosa di simile:

<archive> 
    <manifest> 
     <mainClass>org.company.MyClass</mainClass> 
    </manifest> 
</archive> 

EDIT: Un completo pom.xml può essere trovato in this question.

0

È necessario creare un jar eseguibile, menzionando la classe principale (ovvero una classe pubblica con il metodo main() in esso) nel file manifest del jar come Main-Class. Quindi, quando propile, fai doppio clic o digita: jar "nome del tuo jar" nella console di comando, quindi verrà eseguito.

2

Launch4J consente di creare un JAR agganciabile su molte piattaforme.

2

Si chiama WebStart,

Tuttavia, non perfettamente la tua descrizione. Non fornisce una soluzione self-packed che dovrebbe esistere.

PS. Personalmente credo che il jar eseguibile sia uno scherzo, non puoi controllare i vmargs, non puoi avere una buona icona e non puoi nemmeno sapere che è eseguibile fino a quando non viene decompresso e prova ad essere eseguito.

Problemi correlati