Domanda

Se ho un file sorgente Java (* .java) o un file di classe (* .class), come posso convertirlo in un file .exe?

Ho anche bisogno di un programma di installazione per il mio programma.

È stato utile?

Soluzione

javapackager

  

Lo strumento Java Packager compila, confeziona e prepara le applicazioni Java e JavaFX per la distribuzione. Il comando javapackager è la versione della riga di comando.

     

& # 8211; Documentazione di Oracle

L'utilità javapackager viene fornita con JDK. Può generare file .exe con il flag -native exe , tra molte altre cose.

WinRun4J

  

WinRun4j è un lanciatore Java per Windows. È un'alternativa a javaw.exe e offre i seguenti vantaggi:

     
      
  • Utilizza un file INI per specificare classpath, main class, vm args, program args.
  •   
  • Nome eseguibile personalizzato che appare nel task manager.
  •   
  • Argomenti JVM aggiuntivi per un uso più flessibile della memoria.
  •   
  • Sostituzione icona integrata per icona personalizzata.
  •   
  • [seguono altri punti elenco]
  •   
     

& # 8211; Pagina Web di WinRun4J

WinRun4J è un'utilità open source. Ha molte funzionalità.

packr

  

Confeziona JAR, risorse e JVM per la distribuzione su Windows, Linux e Mac OS X, aggiungendo un file eseguibile nativo per farlo apparire come un'app nativa. Packr è più adatto per le applicazioni GUI.

     

& # 8211; packr README

packr è un altro strumento open source.

JSmooth

  

JSmooth è un wrapper eseguibile Java. Crea launcher nativi per Windows (.exe standard) per le tue applicazioni java. Rende la distribuzione Java molto più semplice e intuitiva, in quanto è in grado di trovare da sola qualsiasi VM Java installata.

     

& # 8211; Sito Web di JSmooth

JSmooth è open source e ha funzionalità, ma è molto vecchio. L'ultima versione è stata nel 2007.

JexePack

  

JexePack è uno strumento da riga di comando (ottimo per gli script automatici) che ti consente di impacchettare la tua applicazione Java (file di classe), opzionalmente insieme alle sue risorse (come GIF / JPG / TXT / etc) , in un unico file EXE Windows compresso a 32 bit, che viene eseguito utilizzando Java Runtime Environment di Sun. Sono supportate sia applicazioni console che finestre.

     

& # 8211; Sito Web di JexePack

JexePack è trialware. Il pagamento è necessario per l'uso in produzione e i file exe creati con questo strumento visualizzeranno i "promemoria" Senza pagare. Inoltre, l'ultima versione è stata nel 2013.

InstallAnywhere

  

InstallAnywhere consente agli sviluppatori di creare facilmente software di installazione professionale per qualsiasi piattaforma. Con InstallAnywhere, ti adatterai rapidamente ai cambiamenti del settore, raggiungerai il mercato più velocemente e fornirai un'esperienza coinvolgente per il cliente. E conosci la vulnerabilità dei componenti OSS del tuo progetto prima della spedizione.

     

& # 8211; Sito Web di InstallAnywhere

InstallAnywhere è un pacchetto commerciale / aziendale che genera programmi di installazione per programmi basati su Java. Probabilmente è in grado di creare file .exe.

File JAR eseguibili

In alternativa ai file .exe, è possibile creare un file JAR che viene eseguito automaticamente quando si fa doppio clic, aggiunta di un punto di ingresso al manifest JAR .


Per ulteriori informazioni

Un'ottima fonte di informazioni su questo argomento è l'articolo di Excelsior " Converti Java su EXE & # 8211; Perché, quando, quando no e come " ;.

Vedi anche l'articolo associato " Migliori strumenti di conversione da JAR a EXE, gratuiti e commerciali " ;.

Altri suggerimenti

Launch4j

  

Launch4j è uno strumento multipiattaforma per il wrapping di applicazioni Java distribuite come vasetti in eseguibili nativi Windows leggeri. L'eseguibile può essere configurato per cercare una determinata versione di JRE o utilizzarne una in bundle ed è possibile impostare opzioni di runtime, come la dimensione heap iniziale / massima. Il wrapper offre inoltre una migliore esperienza utente tramite un'icona dell'applicazione, una schermata iniziale pre-JRE nativa, un nome di processo personalizzato e una pagina di download Java nel caso in cui non sia possibile trovare il JRE appropriato.

     

& # 8211; Sito web di Launch4j

  

AGGIORNAMENTO: GCJ è morto. È stato rimosso ufficialmente dal progetto GCC nel 2016. Ancora prima, era praticamente abbandonato per sette anni, e in ogni caso non è mai stato sufficientemente completo per servire come un'implementazione alternativa alternativa praticabile.

     

Vai a trovare un altro compilatore AOT Java.

GCJ: The GNU Compiler for Java può compilare il codice sorgente Java in codice macchina nativo, inclusi gli eseguibili di Windows.

Sebbene non tutto in Java sia supportato sotto GCJ, specialmente i componenti della GUI (vedi Quali API Java sono supportate? Quanto è completo il supporto? dalla domanda FAQ ). Non ho usato GCJ molto, ma dai test limitati che ho fatto con le applicazioni console, sembra che vada bene.

Un aspetto negativo dell'utilizzo di GCJ per creare un eseguibile autonomo è che la dimensione del file EXE risultante può essere piuttosto grande. Una volta ho compilato una banale applicazione console in GCJ e il risultato è stato un eseguibile di circa 1 MB. (Potrebbero esserci modi per aggirare questo problema di cui non sono a conoscenza. Un'altra opzione potrebbe essere un programma di compressione eseguibile.)

In termini di programmi di installazione open source, il Nullsoft Scriptable Install System è un programma di installazione tramite script. Se sei curioso, ci sono esempi forniti dagli utenti su come rilevare la presenza di un JRE e installarlo automaticamente se JRE richiesto non è installato. (Solo per farvi sapere, non ho mai usato NSIS prima.)

Per ulteriori informazioni sull'uso di NSIS per l'installazione di applicazioni Java, consultare la mia risposta per la domanda " Qual è il modo migliore per distribuire le applicazioni Java? "

È possibile creare un file batch con il seguente codice:

start javaw -jar JarFile.jar

e converti .bat in un .exe utilizzando qualsiasi convertitore .bat in .exe.

Stiamo usando Install4J per creare programmi di installazione per Windows o Unix ambienti.

È facilmente personalizzabile fino al punto in cui si desidera scrivere script per azioni speciali che non possono essere eseguite con dialoghi standard. Ma anche se stiamo configurando servizi Windows con esso, stiamo usando solo componenti standard.

  • installer + launcher
  • windows o unix
  • eseguibile tramite script in Java
  • task formica
  • molti pannelli e azioni standard personalizzabili
  • include o scarica facoltativamente un JRE
  • può anche avviare i servizi di Windows
  • più lingue

Penso che Launch4J appartenga alla stessa azienda (solo il lanciatore - nessun programma di installazione).

PS: purtroppo non vengo pagato per questa approvazione. Mi piace solo quello strumento.

L'ultimo Java Web Start è stato migliorato per consentire un buon funzionamento offline oltre a consentire " installazione locale " ;. Vale la pena esaminarlo.

EDIT 2018: Java Web Start non è più associato ai più recenti JDK. Oracle sta spingendo verso una "distribuzione locale dell'app con un JRE" allegato modello invece.

Se è necessario convertire l'intera applicazione in codice nativo, ovvero un EXE più DLL, è presente ExcelsiorJET . Ho scoperto che funziona bene e ho fornito un'alternativa al raggruppamento di un JRE.

IMHO JSmooth sembra fare un buon lavoro.

Direi che launch4j è lo strumento migliore per convertire un codice sorgente Java (.java) in file .exe Puoi anche raggruppare un jre con esso per la distribuzione e l'exe può anche essere iconificato. Sebbene le dimensioni dell'applicazione aumentino, si assicura che l'applicazione funzionerà perfettamente anche se l'utente non ha un jre installato. Inoltre, ti consente di fornire il jre specifico richiesto per la tua app senza che l'utente debba installarla separatamente. Ma sfortunatamente, Java perde la sua importanza. Il suo supporto multipiattaforma viene totalmente ignorato e l'app finale è supportata solo per Windows. Ma questo non è un grosso problema, se fai catering solo per gli utenti di Windows.

Puoi utilizzare Janel . Quest'ultimo funziona come un lanciatore di applicazioni o un lanciatore di servizi (disponibile da 4.x).

In alternativa, puoi utilizzare un traduttore java-to-c (ad es. JCGO ) e compilare i file C generati in un file binario nativo (.exe) per la piattaforma di destinazione.

Posso essere perdonato per essere contrario alla conversione di un programma Java in un'applicazione .exe e ho i miei motivi. il principale è che un programma java può essere compilato in un file jar da molti IDE. Quando il programma è in formato .jar, può essere eseguito su più piattaforme invece di .exe che verrebbe eseguito solo in un ambiente molto limitato. Sono dell'idea che i programmi Java non debbano essere convertiti in Exe a meno che non sia molto necessario. Si può sempre scrivere file .bat che eseguono il programma Java mentre è un file jar.

se è davvero necessario convertirlo in exe, il convertitore Jar2Exe lo fa in silenzio e si possono anche collegare librerie compilate insieme all'applicazione principale.

Puoi convertire jar in exe usando jar2exe . Tuttavia è necessario acquistare il software. Se hai bisogno di un software open source, suggerirei JSmooth .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top