2010-07-30 14 views
20

Come richiesto e risposto allo here, python ha un modo utile di implementazione senza installatori. Java può fare la stessa cosa?In esecuzione java senza installare jre?

  • C'è un modo per eseguire il file jar di Java senza installare jre?
  • C'è uno strumento simile a java2exe (win32), java2bin (linux) o java2app (mac)?
+0

Argomento simile: http://stackoverflow.com/questions/664858/how-can-you-package-an-executable-jar-with-a-portable-jre – h3xStream

risposta

14

Per questo è possibile utilizzare Launch4j. Ben documentato e facile da usare. Mentre il programma risultante ha ancora bisogno di un JRE per essere eseguito, non è necessario installare JRE sul sistema di destinazione. Puoi semplicemente copiarlo con la tua applicazione e dire a Launch4j di trovarlo o di avvolgerlo con tutto il resto.

+1

Dove sono i file JRE? Con Mac ho trovato /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/*, e con PC ho trovato Java/jre6/lib. Devo copiare tutti quei file? – prosseek

+1

È necessario copiare i due sottodir di jre6/lib e jre6/bin mantenendo la struttura di sottodirectory. E dì a Launch4j dove trovarlo, meglio come un percorso relativo dalla dir dell'eseguibile. Personalmente ho messo il file bin e le cartelle lib in una sottodirectory chiamata jre accanto al mio eseguibile. – haffax

-2

Potreste essere in grado di ottenere un pò di fortuna con GCJ - non ho provato io stesso.

+1

Che non funzionerà mai. – TheLQ

0

è possibile incorporare JRE all'interno dell'applicazione e creare una configurazione o un'installazione per l'applicazione.

+7

"Perché questa semplice applicazione per calcolatrice è di 26 MB?" – TheLQ

+1

Anche se trovassi che un programma ha installato segretamente una minaccia alla sicurezza come Java sul mio sistema senza il mio consenso, sarei molto arrabbiato –

0

Si potrebbe voler verificare come Eclipse lo fa: ha un file .exe nativo che può utilizzare un JRE locale (per l'installazione).

4

Per la creazione di eseguibili nativi, è possibile utilizzare Excelsion Jet, che compila Java nel codice nativo. Lo abbiamo usato per un progetto al lavoro, e abbiamo dovuto eseguire zero modifiche al codice sorgente originale (che aveva come target il JDK di Sun).

+1

Domande frequenti: Excelsior JET non è solo un pacchetto di applicazioni Java nei binari Windows EXE/Linux. Compila davvero i tuoi file di classe Java in istruzioni native x86 (IA-32). Gli eseguibili risultanti necessitano dell'esecuzione di Excelsior JET Runtime, ma non di Sun JRE. – TheLQ

+0

"Gli eseguibili risultanti devono eseguire Excelsior JET Runtime". Questo è vero, ma è anche possibile incorporare questo runtime nel file binario generato. Il binario è quindi autosufficiente. In questo processo, ritengo sia possibile eliminare il runtime per mantenere solo le parti utilizzate nell'applicazione compilata. – barjak

Problemi correlati