View Full Version : [Java] Realizzare un file .exe
Diabolik76
19-09-2005, 15:45
Ciao a tutti...
Vi faccio una delle mie domande idiote (Per Voi!!!! Non per Me :( :( )
Si può realizzare un file .exe a partire da un codice in Java???
Se non l'ho sparata grossa vi prego di rispondermi altrimenti vi autorizzo a lanciarmi di tutto (pomodori marci, frutta, etc etc :Prrr: :Prrr: )
.exe --> è solo per Microsoft!
Java è multipiattaforma! E trasformarlo in .exe nn avrebbe senso.
In java c'è l'estensione .jar !! ma nn so come si creano!
Diabolik76
19-09-2005, 17:18
... qualcuno sa come si fa???
franksisca
19-09-2005, 17:32
puoi fare anche il .exe, ma come detto in precedenza funzionerebbe solo su piattaforma Win.
Se non ti interessa, cerca javalauncher sul web o su qualche cose del genere, oppure, se usi eclipse, te lo dovrebbe fare in automatico.
per creare un jar cerca prima nel forum e poi nel WEB.
;)
Diabolik76
19-09-2005, 17:35
... per me va benissimo anche solo su windows!!!!
Provo a cercare javalauncher!!! e poi vediamo
Grazie
Alvaro Vitali
19-09-2005, 18:05
E' vero che con javalauncher puoi fare un exe per windows ma tieni presente che non è un file compilato per windows come per gli altri exe a cui sei abituato, si tratta di una sorta di schortcut che richiama la jvm per eseguire il tuo codice java.
E non fa nulla in più di un jar ( anche il jar si clicca due volte e lancia l'applicazione).
per me va benissimo anche solo su windows
Ma se non avete intenzione di creare software cross-platform perchè usare Java?
La JVM è un "peso" che Java si porta dietro (a scapito delle prestazioni) per beneficiare della possibilità di offrire ai programmatori un sistema per realizzare applicazioni cross-platform con la minima fatica.
Tanto vale usare i linguaggi che compilano codice nativo come il performante c++ se si ha il target di un sistema operativo in particolare!
Questo modo di fare non ha senso...
se il programma contiene interfaccia grafica con swing/awt non esiste al momento un compilatore in grado di produrre eseguibili indipendenti dalla macchina virtuale java che deve quindi comunque essere presente affinche il to programma funzioni.
Se non c'è interfaccia grafica, o se questa è reallizzata con swt (la libreria grafica di eclipse) puoi compilare in codice nativo con il gcc sia su windows che su linux, attenendoti alle limitazionid el compilatore, al mmomento mi pare sia alla versione java 1.2.
E' vero che con javalauncher puoi fare un exe per windows ma tieni presente che non è un file compilato per windows come per gli altri exe a cui sei abituato, si tratta di una sorta di schortcut che richiama la jvm per eseguire il tuo codice java.
E non fa nulla in più di un jar ( anche il jar si clicca due volte e lancia l'applicazione).
Ma se non avete intenzione di creare software cross-platform perchè usare Java?
La JVM è un "peso" che Java si porta dietro (a scapito delle prestazioni) per beneficiare della possibilità di offrire ai programmatori un sistema per realizzare applicazioni cross-platform con la minima fatica.
Tanto vale usare i linguaggi che compilano codice nativo come il performante c++ se si ha il target di un sistema operativo in particolare!
Questo modo di fare non ha senso...
Se uno ha un'ottima conoscenza di java perche non dovrebbe utilizzarlo? Per diventare produttivi con un linugaggio nuovo e una libreria nuova come quella del c++ ci vuole tempo. Per non parlare del fatto che un linguaggio può essere preferito a priori ad un altro per le sue caratteristiche e funzionalità, ed è proprio il caso di java che permette un tipo di programmazione diversa da quella in c++. A me non disppiacerebbe avere un compilatore in codice nativo per java.
Diabolik76
19-09-2005, 18:34
... a quanto vedo la mia domanda non era poi così banale!!!!
Ho studiato sia il java che il c++ ma dopo aver fatto gli esami li ho completamente abbandonati... quello che mi interessa e capire se si può crare un file .exe che funzioni indipendentemente dalla JVM oppure dal compilatore C.
Poi riprendo a studiare il linguaggio che mi consente di fare tale operazione... perferirei il Java semplicemente perchè l'ho abbandonato da meno tempo!!!!!
E come qualcuno di voi a detto:"lo trovo più carino"
con un compilatore c o c++ ottieni programmi eseguibili indipendenti da macchine virtuali.
Diabolik76
19-09-2005, 18:47
...ok ti ringrazio, provo a ripartire in C++, chiaramente con il vostro aiuto!!!!
:D :D :D :D :D :D :D :D :D :D :D
Alvaro Vitali
19-09-2005, 19:20
A me non disppiacerebbe avere un compilatore in codice nativo per java
neanche a me dispiacerebbe, però finchè la filosofia è "write once run everywere" a scapito cmq delle preformance, se io dovessi fare un'applicazione solo per un S.O. la farei con un linguaggio nativo che mi garantisce le massime performance e non ha neanche bisogno di interpreti...
Capisco cmq che possa piacere un linguaggio più di un altro e lo si usi anche in situazioni piuttosto anomale o comunque dove non è conveniente... :) ;)
La questione del codice nativo è un'altra poi che in teoria va contro la filosofia di Java in quanto , al di là del fatto di creare codice solo per una piattaforma questo comporta che un programma compilato basandosi sulla JDK 1.4 (ad esempio) coninuerà ad usare anche una volta uscita la 1.5 o 1.6 etc.. le stesse "caratteristiche" della jdk vecchia senza avvantaggiarsi delle migliorie introdotte.
Attualmente invece un programma java scritto per la 1.5 oggi potrebbe girare "meglio" un domani se interpretato da una 1.6 magari perchè un certo algoritmo è stato reso più efficiente.
A parte cmq le mie opinioni, ma il compilatore AOT Excelsior JET non crea codice compilato (anche se si usano le swing) ?
http://www.excelsior-usa.com/jet.html
"write once run everywere" diverebbe "write once compile everywhere": se non si parla di applet e di applicazioni web non è cosi importante avere un eseguibile unico per tutti i sistemi; ciò che veramente è importante è avere una versione unica dei sorgenti compilabile in egual modo su tutti i sistemi che hanno il compilatore; questo ad esempio è un noto problema del c++ per il quale a volte un programma compilato con ilcompilatore per windows non va bene se compilato su linux sia perche ogni compilatore implementa un proprio standard sia perchè a volte i programmi utilizzano delle librerie disponibili su un solo sistema.
Quanto al compilatore da te indicato l'avevo già provato e anch'esso richiede la jre se c'è interfaccia grafica:
The JRE is not required if:
3. Your application does not use any of the GUI-related Java 2 platform classes (AWT, Swing, JPEG, etc.) or the JDBC-ODBC bridge
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.