Launch4j: creare eseguibili Windows per applicazioni Java

Utilizzare Launch4j per incorporare e eseguire archivi JAR in classici file .exe


Una delle prime domande che sorgono ai newbie di Java è: “come creo un file eseguibile .exe per le mie applicazioni Java?”. Java è un linguaggio multipiattaforma interpretato, e quindi non è così logico creare dei file .exe compatibili solo con i sistemi Windows. Per distribuire un’applicazione Java si devono distribuire tutti i file .class in bytecode, oppure un unico archivio JAR. In entrambi i casi l’esecuzione dell’applicazione deve avvenire invocando direttamente la Java Virtual Machine, solitamente creando un apposito script command (.cmd), batch (.bat), o shell (.sh nei sistemi UNIX/Linux).

Launch4j è un progetto open source che permette di eliminare questo problema creando un file eseguibile .exe per i sistemi Windows a partire dall’archivio JAR dell’applicazione.
Attenzione: Launch4j non converte l’applicazione in un eseguibile, perchè questo provoca spesso molti problemi. Semplicemente si pone come wrapper verso l’applicazione Java, ed è quindi comunque necessario che il sistema abbia installata una qualche versione del Java Runtime Environment. Potete scaricare Launch4j dal sito ufficiale del progetto.

Launch4j dispone di una GUI che semplifica il processo di creazione dell’eseguibile. Nello screenshot sottostante è possibile vedere le configurazioni principali di Launch4j. In Output file bisogna specificare il path dell’eseguibile che verrà creato, mentre in Jar il path dell’archivio JAR dell’applicazione. E’ poi possibile specificare un’icona e un eventuale file manifest per specificare la necessità di particolari privilegi per l’esecuzione.

L’eseguibile può agire in due modi differenti. Solitamente l’archivio JAR viene totalmente incorporato nell’eseguibile, consentendo così di evitare di distribuirlo assieme all’applicazione. In alternativa, selezionando Don’t wrap the jar, launch only, è possibile far si che l’eseguibile mantenga separato il file JAR, occupandosi solamente di eseguirlo invocando la JVM. In quest’ultimo caso è necessario distrubuire il file JAR assieme all’applicazione. E’ importante sottolineare che i due approcci sono del tutto equivalenti, in quanto Launch4j non effettua conversioni del codice, ma funge semplicemente da wrapper.

Il parametro Change dir permette di specificare in quale directory spostarsi prima di eseguire l’applicazione: ciò è importante se l’applicazione fa riferimento a file utilizzando path relativi alla propria directory di esecuzione. Inserendo un punto (.) come valore Launch4j si sposterà nella directory dell’eseguibile prima di eseguire l’applicazione. In Command line args si possono invece inserire tutti i parametri che l’applicazione deve ricevere da riga di comando.

Una delle funzionalità più importanti e utili di Launch4j è la capacità di controllare automaticamente la presenza del JRE e la relativa versione, e di avvisare l’utente nel caso sia necessario scaricare un’altra versione del JRE, proponendo il link verso la pagina di download. Per sfruttare questa funzionalità è necessario specificare, nel tab JRE della GUI, la versione minima del JRE affinchè l’applicazione funzioni (es. 1.6.0.11), ed eventualmente anche la versione massima e il criterio di selezione del JRE nel caso sia installato anche il Java Development Kit (JDK). Nella stessa scheda è possibile anche impostare i parametri per l’esecuzione della JVM, quali le dimensioni dello heap e le opzioni della JVM.

Nell’eseguibile vengono incorporate anche le informazioni sulla versione, il titolo dell’applicazione, il copyright, ecc… Tutto ciò è impostabile nel tab Version Info. E’ anche possibile forzare Windows a consentire una sola esecuzione contemporanea dell’applicazione, impostando il mutex di controllo nel tab Single Instance. Infine una funzionalità simpatica è la possibilità di inserire uno splash screen.

Configurato il tutto è possibile salvare la configurazione e avviare la creazione dell’eseguibile. Il gioco è fatto, d’ora in poi non saranno più necessari quei fastidiosi file .cmd per l’avvio delle applicazioni Java.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *