JVM vs JRE
Java es un lenguaje de programación multiplataforma. También se adhiere al principio de "escribir una vez, ejecutar en cualquier lugar". El programa escrito en Java se puede compilar en el bytecode de Java por el compilador de Java. Luego, el código de bytes se puede ejecutar en cualquier plataforma que ejecute JRE (Java Runtime Environment). JRE incluye la JVM (Java Virtual Machine), las bibliotecas base (que implementan la API de Java) y otros archivos de soporte. JVM es una máquina de computación abstracta que actúa como mediador entre las plataformas específicas de JRE y el código de Java..
¿Qué es JVM??
JVM es un tipo de máquina virtual que utilizan las máquinas para ejecutar el bytecode de Java. Según Sun Microsystems (que desarrolló Java hasta que fue comprado por Oracle, muy recientemente), hay más de 4 mil millones de dispositivos habilitados para JVM en el mundo. Más específicamente, Java Virtual Machine es una máquina de computación abstracta implementada en hardware estándar y sistema operativo. Una de las funciones importantes que proporciona la JVM es el manejo automatizado de excepciones. Normalmente, una colección de bibliotecas estándar acompaña a la JVM. De hecho, JRE es un paquete que contiene la JVM y las clases que implementan la API de Java. JVM es un componente muy importante, que se adapta a la naturaleza "compilar una vez, ejecutar en cualquier lugar" del lenguaje de programación Java. Mientras la JVM se esté ejecutando, su código Java puede ejecutarse sobre ella, independientemente de la plataforma utilizada en la máquina. Es por esto que Java se llama un lenguaje multiplataforma o multiplataforma.
Que es jre?
JRE es el entorno de ejecución en el que se ejecuta el código Java. Normalmente, JRE está compuesto por la JVM, las clases base estándar (que implementan la API de Java base) y otros archivos de soporte. El tipo y la estructura de JRE varían según el sistema operativo y la arquitectura de la CPU. Cuando se ejecuta el código Java, el JRE se comunicará con el sistema operativo, que a su vez hablará con los componentes de hardware correspondientes. Tener JRE instalado en su sistema es una obligación para ejecutar cualquier código Java en su máquina. Sin embargo, JRE no incluye un compilador, depurador ni ninguna otra herramienta necesaria para el desarrollo de programas Java (como appletviewer y javac). Si necesita desarrollar programas en Java, necesita tener el JDK (Java Development Kit), que también incluye el JRE.
¿Cuál es la diferencia entre JVM y JRE??
Aunque, en el uso diario, los términos JVM y JRE se usan indistintamente, tienen sus diferencias. JVM es una máquina virtual que se ejecuta sobre el sistema operativo, mientras que JRE es el entorno de ejecución en tiempo de ejecución. JVM es una parte del JRE. La especificación JVM actúa como enlace entre la implementación JRE específica de la plataforma y las bibliotecas estándar de Java. Por lo tanto, JVM es la entidad que proporciona la abstracción de los detalles internos de la implementación al programador. Y es responsable de interpretar el bytecode compilado. Sin embargo, JVM necesita las bibliotecas base y otros archivos de soporte para ejecutar el código de bytes de Java. Pero a veces, JRE se identifica simplemente como una implementación de JVM.