JVM (Java virtual machine)

La JVM (Java™ virtual machine) è un ambiente del tempo di esecuzione che è possibile aggiungere in un browser Web o in qualsiasi sistema operativo, come IBM® i. La JVM (Java virtual machine) esegue istruzioni generate da un compilatore Java. Essa consiste in un interpreter bytecode e tempo di esecuzione che consente di eseguire i file di classe Java su qualsiasi piattaforma, indipendentemente dalla piattaforma su cui sono stati sviluppati in origine.

Il programma di caricamento classi e il responsabile della riservatezza, che fanno parte del tempo di esecuzione Java, isolano il codice che proviene da un'altra piattaforma. Essi possono anche limitare le risorse di sistema cui può accedere ogni classe caricata.

Nota: le applicazioni Java non vengono limitate; la limitazione riguarda soltanto le applet. Le applicazioni possono accedere liberamente alle risorse di sistema e utilizzare i metodi nativi. La maggior parte dei programmi di IBM Developer Kit per Java sono applicazioni.

Oltre caricamento e all'esecuzione dei bytecode, la JVM (Java virtual machine) include un programma di raccolta dati inutili che gestisce la memoria. La Raccolta di dati inutili Java viene eseguita nello stesso momento del caricamento e dell'interpretazione dei bytecode.

JRE (Java runtime environment)

L'ambiente di tempo di esecuzione Java viene avviato ogni qualvolta si immette il comando RUNJVA (Esecuzione Java) oppure il comando JAVA sulla riga comandi IBM i. Dal momento che l'ambiente Java dispone di più sottoprocessi, è necessario eseguire la JVM (Java virtual machine) su un lavoro che supporti i sottoprocessi, come il lavoro BCI (batch immediato). Come mostra la seguente figura, una volta avviata la JVM (Java virtual machine), è possibile avviare ulteriori sottoprocessi su cui viene eseguito il programma di raccolta di dati inutili.

Figura 1: il tipico ambiente Java quando si utilizza il comando CL RUNJVA o JAVA

Questo grafico mostra un esempio dell'avvio di un ambiente del tempo di esecuzione Java utilizzando i comandi CL RUNJVA o JAVA sulla riga comandi IBM i.

È inoltre possibile avviare JRE (Java runtime environment) utilizzando il comando java in Qshell dal Qshell Interpreter. In questo ambiente, Qshell Interpreter è in esecuzione su un lavoro BCI associato ad un lavoro interattivo. JRE (Java runtime environment) viene avviato sul lavoro su cui è in esecuzione Qshell Interpreter.

Figura 2: ambiente Java environment quando si utilizza il comando java in Qshell

La grafica mostra un esempio dell'avvio di un ambiente del tempo di esecuzione Java utilizzando il comando java in Qshell dal Qshell Interpreter.

Quando JRE (Java runtime environment) viene avviato da un lavoro interattivo, viene visualizzato il pannello Java Shell. Tale pannello fornisce una riga di immissione per immettere i dati nel flusso System.in e per visualizzare i dati registrati nel flusso System.out e System.err.

Interprete Java

L'interpreter Java fa parte della JVM (Java virtual machine) che interpreta i file di classe Java per una specifica piattaforma hardware. L'interpreter Java decodifica ogni bytecode ed esegue l'operazione corrispondente.