Come posso convertire un file JAR in un file EXE?

Voglio creare un file JAR e voglio eseguirlo su una macchina client. Quindi, ho un paio di domande:

  1. Come posso convertire il file JAR in un file EXE?
  2. Come posso crittografare i contenuti del file JAR? Il file jar può essere estratto con WinRAR e le classi possono essere decompilate con qualsiasi decompilatore Java.
  3. Come posso creare un programma di installazione? I miei clienti non hanno JVM e non voglio spedire JDK o JRE, perché hanno grandi dimensioni.

  1. Vedi questo link: Java to Exe . Spiega anche quali sono validi motivi per farlo e quando non dovresti.

  2. Non è ansible crittografare realmente i file binari poiché la macchina deve capirli. Detto questo, un eseguibile ottimizzato è molto difficile da decompilare, mentre i semplici file di class sono semplici.

  3. Se hai un exe ci sono abbastanza installatori.

JSmooth è un’applicazione che avvolgerà il tuo Jar in un exe

consente inoltre di verificare se la versione corretta di JRE è disponibile sul sistema che si sta distribuendo

http://jsmooth.sourceforge.net/

Per quanto riguarda 1): immagino che non puoi. Ci possono essere strumenti là fuori, ma non puoi farlo con gli strumenti standard forniti con JDK, in quanto distruggerebbe l’indipendenza dalla piattaforma. (Vedi altre risposte che forniscono collegamenti a tali strumenti di terze parti)

Come per 3): usa InnoSetup per creare il programma di installazione. Includere JRE all’interno del setup e consentire a InnoSetup di installarlo al volo.

Non puoi impedire la decompilazione. Il meglio che puoi fare è renderlo più difficile o più dispendioso in termini di tempo. Comunque, come risposta alla tua domanda, credo che tu possa usare gcj per compilare Java in EXE.

Può essere Excelsior JET soddisferà i tuoi bisogni.) IMHO prodotto molto maturo.

1) Ho recentemente provato il programma jarToExe e mi piace. Alcune funzionalità sono:

  • versione base gratuita o molto economica ($ 30) per ‘impresa’
  • possibilità di avere il task manager di Windows per elencare il nome dell’app anziché il java.exe predefinito
  • ulteriore offuscamento
  • runtime verifica che java sia installato

2) Puoi rendere più difficile il reverse engineering usando proguard o altri offuscatori

3) nsis è un linguaggio di scripting molto potente e gratuito per creare programmi di installazione di Windows. Buona documentazione sul wiki del sito e supporto allo stack overflow.

Launch4j ha funzionato per me mentre alcuni strumenti non funzionavano. Ha anche una buona guida qui .

Spero che questo aiuto!

Usiamo un launcher di installazione SFX 7zip. Questo è uno strumento semplice open source. Confezionerà il tuo jar, una versione di jre quindi non è obbligatorio che i sistemi di installazione abbiano jre installato e una versione autoestraente di 7zip. Ecco un tutorial che spiega come bundle e GitHub link Il progetto non è mantenuto ma funziona perfettamente (testato fino a Java 1.8)