Máquina virtual Java virtual machine

La máquina virtual de Java™ es un entorno de tiempo de ejecución que puede añadir en un navegador web o en cualquier sistema operativo, como IBM® i. La máquina virtual Java ejecuta instrucciones generadas por un compilador Java. Consta de un intérprete de bytecode y un entorno de tiempo de ejecución que permiten ejecutar los archivos de clase Java en cualquier plataforma, sea cual sea la plataforma en la que se desarrollaron originariamente.

El cargador de clases y el gestor de seguridad, que forman parte del entorno de tiempo de ejecución Java, aíslan el código que proviene de otra plataforma. También pueden restringir a qué recursos del sistema puede acceder cada una de las clases que se cargan.

Nota: Las aplicaciones Java no están restringidas; tan solo lo están los applets. Las aplicaciones pueden acceder libremente a los recursos del sistema y utilizar métodos nativos. La mayoría de los programas de IBM Developer Kit para Java son aplicaciones.

Además de cargar y ejecutar el bytecode, la máquina virtual Java incluye un recogedor de basura que gestiona la memoria. La Recogida de basura en Java se ejecuta al mismo tiempo que la carga y la interpretación del bytecode.

Entorno Java de tiempo de ejecución (JRE)

El entorno Java de tiempo de ejecución (JRE) se inicia siempre que se entra el mandato Ejecutar Java (RUNJVA) o el mandato JAVA en la línea de mandatos del IBM i. Dado que el entorno Java es multihebra, es necesario ejecutar la máquina virtual Java en un trabajo que permita hebras, como puede ser un trabajo inmediato por lotes (BCI). Como se ilustra en la siguiente figura, una vez iniciada la máquina virtual Java, pueden iniciarse más hebras en el trabajo en que se ejecutará el recogedor de basura.

Figura 1: El típico entorno Java cuando se utiliza el mandato CL RUNJVA o JAVA

En este gráfico se ve un ejemplo de cómo iniciar el entorno Java de tiempo de ejecución (JRE) mediante el mandato CL RUNJVA o JAVA en la línea de mandatos del IBM i.

También es posible iniciar el entorno Java de tiempo de ejecución (JRE) utilizando el mandato java en Qshell desde el intérprete Qshell. En este entorno, el intérprete Qshell se ejecuta en un trabajo BCI asociado a un trabajo interactivo. El entorno Java de tiempo de ejecución (JRE) se inicia en el trabajo que ejecuta el intérprete Qshell.

Figura 2: el entorno Java cuando se utiliza el mandato java en Qshell

En este gráfico se ve un ejemplo de cómo iniciar el entorno Java de tiempo de ejecución (JRE) mediante el mandato java en Qshell desde el intérprete Qshell.

Cuando el entorno Java de tiempo de ejecución (JRE) se inicia desde un trabajo interactivo, aparece la pantalla de la shell Java. Esta pantalla proporciona una línea de entrada para incluir datos en la corriente System.in, así como para visualizar los datos que se escriben en la corriente System.out y en la corriente System.err.

Intérprete de Java

El intérprete de Java es el componente de la máquina virtual Java que interpreta los archivos de clase Java para una plataforma de hardware determinada. El intérprete Java decodifica cada bytecode y realiza la correspondiente operación.