2009-12-28 12 views
23

Ho usato questi tre strumenti open source per il packaging delle mie app java, ma ora sembrano tutti abbandoni. Tutti e tre sono ottimi software. Quali sono le opzioni ora? (o sta usando Java per lo sviluppo di app desktop non più un mercato "caldo" per gli sviluppatori di app per creare & mantenere questi strumenti?).Strumenti di packaging Java - alternative per jsmooth, launch4j, unjar

1) wrapper exe: jsmooth - nessun nuovo sviluppo in 2,5 anni - non supporta 64 bit. launch4j - nessun nuovo sviluppo in più di un anno, supporta 64 bit, ma non è possibile firmare l'exe creato da launch4j, quindi preferisco jsmooth, ma non supporta 64 bit.

2) onejar: Funziona, ma non c'è stato alcun nuovo sviluppo o aggiornamento del sito web in più di 2,5 anni. Quindi, voglio solo passare a qualcosa che è supportato/avere un piano di backup se improvvisamente si rompe con una nuova build di Java.

Grazie Edgar

+2

Vedere http://stackoverflow.com/questions/1276091/installer-generator-written-in-java/1276408#1276408 –

risposta

7

Hai controllato IzPack? Questo è un grande pezzo di software per creare programmi di installazione multi-piattaforma:

IzPack è un generatore di programmi di installazione per la piattaforma Java. Produce programmi di installazione leggeri che possono essere eseguiti su qualsiasi sistema operativo in cui sia disponibile una macchina virtuale Java. A seconda del sistema operativo, può essere avviato con un doppio clic o con un semplice 'java -jar installer.jar' su una shell. L'uso più comune è distribuire applicazioni per la piattaforma Java, ma è possibile utilizzarlo anche per altri tipi di progetti. Il vantaggio principale di IzPack è che fornisce un modo pulito e unico di distribuire un progetto agli utenti che utilizzano diversi sistemi operativi.

Alcune aziende e progetti realmente famosi lo usano da molti anni (Sun Microsystems, JBoss/RedHat, il progetto di lingua Scala, alcuni progetti/OW2 ObjectWeb, XWiki e molti altri). Se è un bene per loro, dovrebbe andare bene per te :)

+3

Il problema è che non fornisce l'exe o l'installazione di Java. Io uso Izpack AND JSmooth, Izpack fornisce l'installer ma ho ancora bisogno di avvolgerlo in Jsmooth in modo che possa essere eseguito senza che Java sia già installato. Inoltre, avvolgo il mio programma in un'altra configurazione di Jsmooth e questo è ciò che installa Izpack, così l'applciazione può essere lanciata come un exe. –

1

Maven 2 offre la possibilità di creare un jar che contiene tutte le dipendenze come parte del relativo plug-in di assembly. Questo combinato con la configurazione del plugin jar del file manifest (e in particolare l'impostazione Main-class per la classe con main) è tutto ciò che serve per fare il packaging di base.

In un certo senso Java web start è ora considerato il modo migliore per distribuire le applicazioni Java e la capacità di assemblaggio di Maven 2 combinata con il web start ti offre tutto ciò che ti serve senza passare per il percorso exe.

+0

Java WebStart non offre una buona esperienza utente se Java non è installato sul computer. –

+0

@ ThorbjørnRavnAndersen Esiste uno script JS di distribuzione che rileva se Java è disponibile e propone l'installazione: https://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/createWebStartLaunchButtonFunction.html – MeTTeO

+0

@MeTTeO Sì. Durante il mio precedente lavoro, l'abbiamo provato, ma per noi non ha funzionato. L'hai usato in produzione? –

1

Se si desidera solo un exe (invece di un programma di installazione in piena regola) si può fare uno con NSIS: http://nsis.sourceforge.net/Java_Launcher_with_automatic_JRE_installation

Sì, NSIS è un programma di installazione, ma si può avere solo eseguito un barattolo nella stessa directory eliminando tutto il materiale di installazione. Fondamentalmente funziona come launch4j ma è molto più configurabile.

6

Dal momento che nessuna delle risposte sono stati approvati, e JavaFX 2.2 non è stato accennato in precedenza (non era disponibile al momento delle risposte) ecco qui:

JavaFX 2.2 (parte di Java Runtime e SDK dal 7u6) consente di creare exe/dmg/rpm nativi che si adattano anche al componente RT completo. Credo che questa sia una risposta valida alle tue necessità, così come una soluzione ufficialmente supportata da Oracle.

https://blogs.oracle.com/talkingjavadeployment/entry/native_packaging_for_javafx

+0

È una risposta valida ma è necessario un Mac per creare pacchetti nativi per Mac poiché probabilmente chiama hdiutil per creare un DMG file. C'è lo stesso problema con gli RPM poiché usa rpmbuild. Guardate la mia risposta, posso usare qualsiasi sistema operativo che supporti Java per creare RPM, DEB, APP, ... – gouessej

+0

Buon punto, @gouessej – akauppi

0

Mentre ero stufo con le recenti modifiche di sicurezza in Java Web Start, ho creato il mio strumento, JNDT. È sotto GPL.

Si va più lontano di suggerimento di akauppi perché permette di creare pacchetti GNU Linux anche sotto Mac e Windows :) Io lo uso per creare fascio Mac GNU Linux. Per il momento, è solo una libreria Ant con alcune dipendenze che consente di creare pacchetti di applicazioni autonome native per GNU Linux, Mac OS X e Windows. Lo uso per il mio sparatutto in prima persona e ne sono molto felice. Raggruppa il JRE ma può usare il sistema JRE se lo si desidera.

P.S: JNDT è in grado di creare un programma di installazione nativo di Windows come eseguibile con NSIS anche sotto GNU Linux.

Comprendo che la licenza GPL scoraggia alcuni sviluppatori a utilizzare il mio strumento. In questo caso, utilizzare piuttosto PackR.

+0

Downvote senza spiegazione, vedo che ci sono ancora alcuni ragazzi intelligenti qui ... – gouessej