Domanda Esportazione un po controversa, secondo me.

Stato
Discussione chiusa ad ulteriori risposte.

_Sempiterno.

Utente Electrum
1 Agosto 2012
267
32
43
132
Salve a tutti, ho un problema:

Faccio 3°a superiore in un istituto tecnico industriale, con indirizzo informatico, ovviamente.
Detto ciò, vi dico anche che stiamo studiando il linguaggio Java al posto del C++ in terza per vari motivi a noi studenti sconosciuti poiché da iscrizione ci è stato spiegato che in terza si fa C++ e in quarta il Java, ma quest'anno hanno rivoluzionato un po tutto.
Ora fino ad adesso abbiamo creato e compilato file di testo conntenti istruzioni varie e salvati in ".java" ora una volta compilato viene automaticamente creato un file ".class", googlando qui e la ho notato che il ".class" è un bitecode (Correggetemi se sbaglio eh) il problema sorge qui:
Quando io compilo un file java, lo eseguo dal promp con il comando java nomefile e do l'invio lo esegue. Ma se io volessi condividire questo programma con altre persone e utenti ogni persone e utente dovrebbe scaricarsi il JDK, farsi il path e impararsi i comandi per l'avviamento di questo programma.
Quello che vorrei fare io è creare o esportare -come prima, correggetemi se sbaglio- questo file in un eseguibile exe, sempre girovagando su internet ho notato solo esportatori da .jar e .exe.
Quindi la domanda è come esporto un .java in un .exe?
E se il .exe si puo creare solo da un .jar, come esporto il .java in un .jar e poi in un .exe?

Grazie in anticipo per le risposte, se ci saranno.

P.S. perdonatemi la "introduzione" ma credo che servi per farvi capir meglio il problema.
 
Ultima modifica:
La miglior soluzione è un IDE(vedi IntelliJ) con Launch4j, però puoi farlo anche da terminale basta che ti vedi i comandi per javac(java compiler)

Per esempio partendo da un .java col main puoi fare:
Codice:
>javac Classe.java

Una volta che hai ottenuto il file .class usa jar(java archive):
Codice:
>jar cvfe Programma.jar Classe *.class
con cvfe genererà da solo il manifesto

Per convertire il .jar in .exe usa Launch4j perché l'estensione è relativa al sistema operativo windows perciò hai bisogno di un convertitore esterno.
 
Il jdk è formato da 2 parti: Il jre (le Runtime, cioè tutto ciò che è necessario per eseguire programmi java) e il resto che serve a creare programmi java.

Per distribuire il tuo programma hai essenzialmente 2 modi:
Dare tutte le classi come file separati o creare un file jar. Qual è la differenza (oltre cge il file jar è un unico file)?
Che nel primo caso le operazioni di avvio devono essere fatto obbligatoriamente manualmente o con uno script dal prompt; nel secondo caso dipende: Lo puoi fare manualmente oppure, se configurato bene, l'esecuzione parte automaticamente.
In entrambi i casi basta ma è necessaria la jre...


I programmi che convertono .jar in .exe che fanno? Di base (poi dipende dal programma), semplicemente creano un eseguibile di "contorno" (wrapper) con all'interno il file jar. Il wrapper controlla che ci sia jre o jdk e nel caso ci sia uno dei due estraggono il jar che hanno dentro ed eseguono i comandi per lanciarli (java ecc)
 
Stato
Discussione chiusa ad ulteriori risposte.