Originariamente inviato da JunkyFunki
Java

1)Creo il file.java
2)compilo il file.java con javac (crea il .class)
3)eseguo il file.class con java

C++
1)Creo il file.cpp
2)compilo il file.cpp con bcc32 (crea il .obj e il .exe)
3)eseguo il file.exe

ora..la mia domanda stupida è...xchè java non mi crea un .exe??
Perchè java è un linguaggio ibrido per metà compilato e per metà interpretato che deriva la sua capacità di essere multipiattaforma (cioè LO STESSO codice SENZA ALCUNA MODIFICA gira su qualunque piattaforma) proprio da questa sua caratteristica.In sostanza mentre dal c++ con la compilazione crei un .exe che "contiene" delle istruzioni macchina specifiche di quella piattaforma (harware (istruction set del processore) + Sistema operativo),con java il file class creato con la compilazione contiene delle istruzioni non direttamente eseguibili dalla macchina ma perfettamente compensibili da QUALSIASI Java Virtual Machine,sia essa installata su Windows Linux,o MacOs.Quindi fino a che ti mantieni al livello di file class le istruzioni che hai sono ancora multipiattaforma,quando poi dai impasto il file class alla JVM con java tuaclasse essa provvede a tradurre una per una tutte le istruzioni in Bytecode (così si chiama questo linguaggio intermedio) in istruzioni specifiche per la pittaforma in cui la JVM stessa è installata.Ovviamente la JVM per linux sarà internamente molto diversa da quella per Windows.Spero di averti chiarito un po le idee.Comunque se quello che ti interessa è ottenere una funzionalità simile agli exe,cioè doppio click sul file del programma ed esso parte senza invocare espicitamente il comando java fammi un fischio.Ciao