JVM (Java Virtual Machine) actúa como un motor de tiempo de ejecución para ejecutar aplicaciones Java. JVM es el que realmente llama al método principal presente en el código Java. JVM es parte de JRE (Java Runtime Environment) .
Las aplicaciones Java se denominan WORA (Write Once Run Anywhere) . Esto significa que un programador puede desarrollar código Java en un sistema y puede esperar que se ejecute en cualquier otro sistema habilitado para Java sin ningún ajuste. Todo esto es posible gracias a JVM.
Cómo Java es WORA:
En los lenguajes de programación tradicionales como C, C++, cuando los programas se compilaban, solían convertirse en el código entendido por el hardware subyacente en particular, por lo que si intentamos ejecutar el mismo código en otra máquina con hardware diferente, que entiende un código diferente causará un error, por lo que debe volver a compilar el código para que el nuevo hardware lo entienda.
En Java, el programa no se convierte en código directamente entendido por el hardware, sino que se convierte en código de bytes (archivo .class) , que es interpretado por JVM, por lo que una vez compilado genera un archivo de código de bytes, que se puede ejecutar en cualquier lugar (cualquier máquina) que tiene JVM (Java Virtual Machine) y, por lo tanto, obtiene la naturaleza de Escribir una vez y Ejecutar en cualquier lugar.
Ejemplo: Implementación práctica de WORA utilizando un programa JAVA simple para verificar si un número es par o impar.
import java.util.Scanner; class GFG { public static void main(String args[]) { int num; System.out.println("Enter a number:"); Scanner input = new Scanner(System.in); num = input.nextInt(); if (num % 2 == 0) System.out.println(num + " is even"); else System.out.println(num + " is odd"); } }
- Para compilar (hecho en Windows 10):
javac GFG.java
- Después de la compilación, habrá un archivo de clase en la carpeta correspondiente con el nombre:
GFG.class
- Cuando copiamos el código de bytes (.class) generado en la compilación a macOS 10.14.3 y lo ejecutamos, obtenemos el siguiente resultado.
Conclusión:
para resumir, Java , cuando se compila, crea un código de bytes (archivo .class) , que se puede ejecutar en cualquier máquina que admita JVM . Entonces, una vez compilado, no requiere volver a compilar en cada máquina que ejecuta, JVM convierte el código de bytes para que el hardware subyacente lo entienda.