JAVA RUNTIME ENVIRONMENT (JRE)
Per eseguire programmi Java, è necessario installare JRE, che comprende:
- Java Virtual Machine (JVM): Macchina software che esegue il bytecode;
- Java Class Library: Collezzione di classi già pronte (e compilate), che offrono strutture dati e funzioni di base, molto utili al programmatore.
JAVA DEVELOPMENT KIT (JDK)
Il codice sorgente di un programma Java può essere scritto con un qualsiasi editor di testi, e come quasi tutti i linguaggi di alto livello è indipendente dalla macchina e dal sistema operativo.
Deve essere poi tradotto (con il compilatore javac) in un codice ottimizzato chiamato bytecode, che come il codice Java è indipendente dalla macchina e dal sistema operativo.
javac e altri strumenti per lo sviluppatore (jar, javadoc, ecc.) fanno
parte del JDK.
Compilazione
Tutti i sorgenti sono messi nella stessa directory ed hanno estensione ‘.java’.
Se un file si chiama X.java, allora contiene una classe pubblica che si chiama X.
Per compilare, si usa il comando:
javac <nome_del_file_compreso_.java>
Partendo da X.java, viene generato il bytecode X.class.
Per eseguire il bytecode, si usa il comando:
java <nome_del_file_senza_estensione>
Se il bytecode è X.class, si scrive:
java X
Ciclo di vita (Programma Java)

La JVM non interpreta il bytecode (sarebbe poco efficiente), ma utilizza
un compilatore interno, chiamato JIT (Just In Time), che genera codice
eseguibile dalla macchina fisica ogni volta che nuovo bytecode viene caricato.
Il codice generato dal compilatore JIT è più lento di un codice macchina
generato da un linguaggio come il C++, ma ha prestazioni ragionevoli.