Diferencias entre JDK, JRE y JVM

Java Development Kit (JDK ) es un entorno de desarrollo de software utilizado para desarrollar aplicaciones y applets de Java. Incluye Java Runtime Environment (JRE), un intérprete/cargador (Java), un compilador (javac), un archivador (jar), un generador de documentación (Javadoc) y otras herramientas necesarias en el desarrollo de Java. 

Ahora necesitamos un entorno para ejecutar nuestro programa. De ahora en adelante, JRE significa «Java Runtime Environment» y también puede escribirse como «Java RTE». Java Runtime Environment proporciona los requisitos mínimos para ejecutar una aplicación Java; consta de la máquina virtual de Java (JVM), las clases principales y los archivos de soporte

Ahora analicemos JVM , que se destaca por la máquina virtual Java. Es como sigue:

  • Una especificación donde se especifica el funcionamiento de Java Virtual Machine. Pero el proveedor de implementación es independiente para elegir el algoritmo. Su implementación ha corrido a cargo de Sun y otras empresas.
  • Una implementación es un programa informático que cumple los requisitos de la especificación JVM.
  • Instancia de tiempo de ejecución Cada vez que escribe un comando java en el símbolo del sistema para ejecutar la clase java, se crea una instancia de JVM.

Antes de continuar con las diferencias entre JDK, JRE y JVM, discutámoslas brevemente primero e interrelacionémoslas con la imagen que se propone a continuación.

No se confunda, ya que vamos a discutirlos todos uno por uno.

1. JDK (Java Development Kit) es un kit que proporciona el entorno para desarrollar y ejecutar (ejecutar) el programa Java. JDK es un kit (o paquete) que incluye dos cosas

  • Herramientas de desarrollo (para proporcionar un entorno para desarrollar sus programas Java)
  • JRE (para ejecutar su programa Java).
     

2. JRE (Java Runtime Environment) es un paquete de instalación que proporciona un entorno para ejecutar (no desarrollar) únicamente el programa (o aplicación) Java en su máquina. JRE solo lo usan aquellos que solo quieren ejecutar programas Java que son usuarios finales de su sistema.
 

3. JVM ( Java Virtual Machine) es una parte muy importante tanto de JDK como de JRE porque está contenida o incorporada en ambos. Cualquier programa Java que ejecute usando JRE o JDK entra en JVM y JVM es responsable de ejecutar el programa java línea por línea, por lo tanto, también se lo conoce como i nterpreter .

Ahora analicemos los componentes de JRE para comprender su importancia y percibir cómo funciona realmente. Para esto, analicemos los componentes.

Los componentes de JRE son los siguientes:

  1. Tecnologías de implementación , incluida la implementación, Java Web Start y Java Plug-in.
  2. Kits de herramientas de interfaz de usuario , incluidos Abstract Window Toolkit (AWT), Swing, Java 2D, Accesibilidad, E/S de imagen, Servicio de impresión, Sonido, arrastrar y soltar (DnD) y métodos de entrada .
  3. Bibliotecas de integración , incluido el lenguaje de definición de interfaz (IDL), la conectividad de bases de datos Java (JDBC), la interfaz de nombres y directorios de Java (JNDI), la invocación de métodos remotos (RMI), la invocación de métodos remotos a través del protocolo Inter-Orb de Internet (RMI-IIOP) y scripting _
  4. Otras bibliotecas base , incluido soporte internacional, entrada/salida (E/S), mecanismo de extensión, Beans, Java Management Extensions (JMX), Java Native Interface (JNI), matemáticas, redes, mecanismo de anulación, seguridad, serialización y Java para Procesamiento XML (XML JAXP) .
  5. Bibliotecas base de lang y util , incluidas lang y util, gestión, control de versiones, zip, instrumento, reflexión, colecciones, utilidades de concurrencia, archivo Java (JAR), registro, API de preferencias, objetos de referencia y expresiones regulares .
  6. Java Virtual Machine (JVM) , incluidas Java HotSpot Client y Server Virtual Machines .

Después de tener una comprensión adecuada de los componentes, ahora analicemos el funcionamiento de JRE. Para comprender cómo funciona JRE, consideremos una ilustración a continuación:

Ilustración:

Considere un archivo fuente de Java guardado como ‘ Ejemplo.java’ . El archivo se compila en un conjunto de código de bytes que se almacena en un archivo » .class «. Aquí será » Ejemplo.clase «. 

Compile time

Nota : desde arriba, se puede interpretar el cálculo de la operación de medios durante el tiempo de compilación.

Las siguientes acciones ocurren en tiempo de ejecución como se indica a continuación:

  • Cargador de clases
  • Verificador de código de bytes
  • Interprete
    • Ejecutar el código de bytes
    • Realice las llamadas apropiadas al hardware subyacente

Ahora analicemos brevemente cómo funciona JVM. Es como sigue:

JVM se convierte en una instancia de JRE en el tiempo de ejecución de un programa Java. Es ampliamente conocido como un intérprete de tiempo de ejecución. JVM ayuda en gran medida a la abstracción de la implementación interna de los programadores que utilizan bibliotecas para sus programas de JDK. 

Es responsable principalmente de tres actividades. 

  • Cargando
  • Enlace
  • Inicialización

Del mismo modo, ahora analicemos el funcionamiento de JRE, que es el siguiente:

  • 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 un 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.
  • Cuando compilamos un archivo .java , el compilador de Java genera archivos .class (que contienen código de bytes) con los mismos nombres de clase presentes en el archivo .java . Este archivo .class entra en varios pasos cuando lo ejecutamos. Estos pasos juntos describen toda la JVM.

Este artículo es una contribución de Krishna Bhatia . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. 

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *