¿Cuál es la diferencia entre JVM , JDK , JRE y OpenJDK? ?
Estaba programando en Java y encontré estas frases, ¿cuáles son las diferencias entre ellas?
java
jvm
difference
Alireza
fuente
fuente
Respuestas:
JVM
La máquina virtual Java (JVM) es la máquina virtual que ejecuta los códigos de bytes Java. La JVM no entiende el código fuente de Java; es por eso que necesita compilar sus
*.java
archivos para obtener*.class
archivos que contengan los códigos de bytes que entiende la JVM. También es la entidad que permite que Java sea un "lenguaje portátil" ( escribir una vez, ejecutar en cualquier lugar ). De hecho, hay implementaciones específicas de la JVM para diferentes sistemas (Windows, Linux, macOS, consulte la lista de Wikipedia ), el objetivo es que con los mismos códigos de bytes todos den los mismos resultados.JDK y JRE
Para explicar la diferencia entre JDK y JRE, lo mejor es leer la documentación de Oracle y consultar el diagrama:
Tenga en cuenta que Oracle no es el único que proporciona JDK.
OpenJDK
OpenJDK es una implementación de código abierto de JDK y la base para Oracle JDK. Casi no hay diferencia entre Oracle JDK y OpenJDK.
Las diferencias se establecen en este blog :
Actualización para JDK 11: un artículo de Donald Smith intenta desambiguar la diferencia entre Oracle JDK y OpenJDK de Oracle: https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11- y después
fuente
JVM es la máquina virtual Java: en realidad ejecuta Java ByteCode.
JRE es el Java Runtime Environment: contiene una JVM, entre otras cosas, y es lo que necesita para ejecutar un programa Java.
JDK es el Kit de desarrollo de Java: es el JRE, pero con javac (que es lo que necesita para compilar el código fuente de Java) y otras herramientas de programación agregadas.
OpenJDK es una implementación específica de JDK.
fuente
other things
contenido en una JVM. Qué son ? Respondió el artículo no totalmente esa pregunta - javabeat.net/what-is-the-difference-between-jrejvm-and-jdkJDK (Kit de desarrollo de Java)
Java Developer Kit contiene herramientas necesarias para desarrollar los programas Java y JRE para ejecutar los programas. Las herramientas incluyen compilador (javac.exe), iniciador de aplicaciones Java (java.exe), Appletviewer, etc.
El compilador convierte el código Java en código de bytes. El iniciador de aplicaciones Java abre un JRE, carga la clase e invoca su método principal.
Necesita JDK, si es que desea escribir sus propios programas y compilarlos. Para ejecutar programas java, JRE es suficiente.
JRE está dirigido a la ejecución de archivos Java
es decir JRE = JVM + Clases de paquetes Java (como util, math, lang, awt, swing, etc.) + bibliotecas de tiempo de ejecución.
JDK está dirigido principalmente para el desarrollo de Java. Es decir, puede crear un archivo Java (con la ayuda de paquetes Java), compilar un archivo Java y ejecutar un archivo java.
JRE (Java Runtime Environment)
Java Runtime Environment contiene JVM, bibliotecas de clases y otros archivos de soporte. No contiene ninguna herramienta de desarrollo, como compilador, depurador, etc. En realidad, JVM ejecuta el programa y utiliza las bibliotecas de clases y otros archivos de soporte proporcionados en JRE. Si desea ejecutar cualquier programa de Java, debe tener JRE instalado en el sistema
Java Virtual Machine proporciona una forma independiente de plataforma de ejecutar código; Eso significa compilar una vez en cualquier máquina y ejecutarla en cualquier lugar (cualquier máquina).
JVM (máquina virtual Java)
Como todos sabemos cuando compilamos un archivo Java, la salida no es un 'exe' sino un archivo '.class'. El archivo '.class' consta de códigos de bytes de Java que JVM puede entender. Java Virtual Machine interpreta el código de bytes en el código de la máquina dependiendo del sistema operativo subyacente y la combinación de hardware. Es responsable de todas las cosas, como la recolección de basura, la verificación de los límites de la matriz, etc. JVM depende de la plataforma.
La JVM se llama "virtual" porque proporciona una interfaz de máquina que no depende del sistema operativo subyacente y la arquitectura de hardware de la máquina. Esta independencia del hardware y el sistema operativo es una piedra angular del valor de escribir una vez en cualquier lugar de los programas Java.
Existen diferentes implementaciones de JVM. Estos pueden diferir en aspectos como el rendimiento, la confiabilidad, la velocidad, etc. Estas implementaciones diferirán en aquellas áreas donde la especificación Java no menciona cómo implementar las características, como el funcionamiento del proceso de recolección de basura depende de JVM, la especificación Java no define cualquier forma específica de hacer esto.
fuente
Una máquina virtual Java (JVM) es una máquina virtual que puede ejecutar Java ByteCode. Es el componente de ejecución de código de la plataforma de software Java.
El Kit de desarrollo de Java (JDK) es un producto de Oracle Corporation dirigido a desarrolladores de Java. Desde la introducción de Java, ha sido, con mucho, el Kit de desarrollo de software (SDK) de Java más utilizado.
Java Runtime Environment , también se conoce como Java Runtime, Runtime Environment
OpenJDK (Open Java Development Kit) es una implementación gratuita y de código abierto del lenguaje de programación Java. Es el resultado de un esfuerzo que Sun Microsystems comenzó en 2006. La implementación está licenciada bajo la Licencia Pública General de GNU (GPL) con una excepción de enlace.
fuente
JVM es la máquina virtual en la que se ejecuta el código Java
JRE es el entorno (bibliotecas estándar y JVM) requerido para ejecutar aplicaciones Java
JDK es el JRE con herramientas de desarrollo y documentación.
OpenJDK es una versión de código abierto del JDK, a diferencia del JDK común propiedad de Oracle
fuente
JDK (Kit de desarrollo de Java):
JRE (Java Runtime Environment)
Java Runtime Environment contiene JVM, bibliotecas de clases y otros archivos de soporte. JRE está dirigido a la ejecución de archivos Java.
JVM (máquina virtual Java)
La JVM interpreta el código de byte en el código de la máquina dependiendo del sistema operativo subyacente y la combinación de hardware. Es responsable de todas las cosas, como la recolección de basura, la verificación de los límites de la matriz, etc. Java Virtual Machine proporciona una forma independiente de plataforma de ejecutar código.
fuente
JDK - Compila Java a ByteCode. Consiste en depuradores, compiladores, etc.
JVM : ejecuta el código de bytes. JVM es el que hace que la plataforma java sea independiente. Pero JVM varía para las plataformas.
JRE - JVM junto con las bibliotecas de tiempo de ejecución de Java para ejecutar programas de Java.
fuente
Otro aspecto que vale la pena mencionar:
JDK (kit de desarrollo de Java)
Lo necesitará para fines de desarrollo como sugiere su nombre.
Por ejemplo: una compañía de software tendrá instalado JDK en su computadora porque necesitará desarrollar un nuevo software que también compile y ejecute sus programas Java.
Entonces podemos decir que JDK = JRE + JVM.
JRE (entorno de tiempo de ejecución de Java)
Es necesario para ejecutar programas Java. No puede compilar programas Java con él.
Por ejemplo: un usuario de computadora normal que quiera ejecutar algunos juegos en línea necesitará JRE en su sistema para ejecutar programas Java.
JVM (máquina virtual java)
Como sabrás, ejecuta los bytecodes. Hace que la plataforma Java sea independiente porque ejecuta el
.class
archivo que obtienes después de compilar el programa Java, independientemente de si lo haces en Windows, Mac o Linux.JDK abierto
Bueno, como dije anteriormente. Ahora JDK está hecho por diferentes compañías, una de las cuales es de código abierto y de uso público es OpenJDK, mientras que otras son JRockit JDK de Oracle Corporation o IBM JDK.
Sin embargo, todos pueden parecer iguales para el usuario general.
Conclusión
Si usted es un programador de Java, necesitará JDK en su sistema y este paquete también incluirá JRE y JVM, pero si es un usuario normal al que le gusta jugar juegos en línea, entonces solo necesitará JRE y este paquete no tendrá JDK. .
En otras palabras, JDK es abuelo JRE es padre y JVM es su hijo.
fuente
Java es el lenguaje e incluye una sintaxis estricta y fuertemente tipada con la que ya debería estar muy familiarizado.
Java 2 Platform, Standard Edition, también conocida como J2SE, se refirió a la plataforma e incluyó las clases en los paquetes java.lang y java.io, entre otros. Fue el bloque de construcción sobre el que se construyeron las aplicaciones Java.
Una máquina virtual Java, o JVM, es una máquina virtual de software que ejecuta código Java compilado. Como el código Java compilado es simplemente bytecode, la JVM es responsable de compilar ese bytecode en el código de máquina antes de ejecutarlo. (Esto a menudo se denomina compilador Just In Time o compilador JIT). La JVM también se encarga de la administración de la memoria para que el código de la aplicación no tenga que hacerlo.
El Java Development Kit, o JDK, fue y sigue siendo la pieza de software que los desarrolladores de Java usan para crear aplicaciones Java. Contiene un compilador de lenguaje Java, un generador de documentación, herramientas para trabajar con código nativo y (típicamente) el código fuente de Java para la plataforma para habilitar clases de plataforma de depuración.
El Java Runtime Environment, o JRE, fue y sigue siendo la pieza de software que los usuarios finales descargan para ejecutar aplicaciones Java compiladas. Incluye una JVM pero no contiene ninguna de las herramientas de desarrollo incluidas en el JDK. El JDK, sin embargo, contiene un JRE.
fuente
JVM: una especificación que describe la forma / recursos para ejecutar un programa java. Realmente ejecuta el código de bytes y hace que la plataforma Java sea independiente. Al hacerlo, es diferente para una plataforma diferente. JVM para Windows no puede funcionar como JVM para UNIX.
JRE: Implementación de JVM. (JVM + bibliotecas de tiempo de ejecución)
JDK: compilador Java JRE + y otras herramientas esenciales para construir un programa Java desde cero
fuente
JVM : esto en realidad significa el intérprete de código de bytes. Depende de la plataforma. Por ejemplo: en la plataforma Windows, el proceso ' java.exe ' o ' javaw.exe ' es el proceso jvm.
JDK : es un kit de herramientas que contiene las bibliotecas y utilidades necesarias para desarrollar y ejecutar el programa / aplicación java
JRE : es el entorno de ejecución para una aplicación java.ie, solo admite dependencias de tiempo de ejecución, incluido jvm para el programa compilado. Si queremos compilar un programa Java necesitamos jdk.
fuente
JVM: máquina virtual de java. le dice a la máquina qué hacer con el código Java. No puede descargar JVM como está. Viene empaquetado en algún otro componente.
JRE: algún otro componente mencionado anteriormente es el JRE. Es JVM + otros frascos para crear un entorno de tiempo de ejecución
JDK: contiene JRE (que a su vez contiene JVM). Una vez que obtenga JDK, no necesita instalar JRE y JVM por separado. Contiene un compilador que compila sus archivos .java en archivos .class
fuente
JVM
JVM (Java Virtual Machine) es una máquina abstracta. Es una especificación que proporciona un entorno de tiempo de ejecución en el que se puede ejecutar el bytecode de Java. Las JVM están disponibles para muchas plataformas de hardware y software.
JRE
JRE es un acrónimo de Java Runtime Environment. Se utiliza para proporcionar un entorno de tiempo de ejecución. Es la implementación de JVM. Existe físicamente. Contiene un conjunto de bibliotecas + otros archivos que JVM utiliza en tiempo de ejecución.
JDK
JDK es un acrónimo de Java Development Kit. Existe físicamente. Contiene herramientas de desarrollo JRE +.
Enlace: - http://www.javatpoint.com/difference-between-jdk-jre-and-jvm
fuente
En resumen:
Si quieres desarrollar en Java, necesitas el JDK, pero si solo quieres ejecutar Java, necesitas el JRE.
fuente
JVM Java Virtual Machine, en realidad ejecuta el código de bytes de Java. Es el bloque de ejecución en la plataforma JAVA. Convierte el bytecode al código de máquina.
JRE Java Runtime Environment, proporciona los requisitos mínimos para ejecutar una aplicación Java; Consiste en la máquina virtual Java (JVM), las clases principales y los archivos de soporte.
JDK Java Development Kit, tiene todas las herramientas para desarrollar su software de aplicación. Es como JRE + JVM
JDK abierto es una implementación gratuita y de código abierto de la Plataforma Java.
fuente
En términos simples: - JDK = JRE + Herramientas de desarrollo / depuración , donde JDK es nuestro paquete completo para trabajar con Java, desde la creación de compilación hasta su ejecución. Por otro lado, JRE es solo la ejecución de código (Código de bytes).
Nota: Ya sea que estemos instalando JDK o JRE, JVM vendría incluido con los paquetes y JVM es la parte donde el compilador JIT convierte el código de bytes en el código específico de la máquina.
Solo lea el artículo sobre JDK, JRE, JVM y JIT
fuente
JDK : el paquete completo que necesita para escribir y ejecutar código Java
OpenJDK : una implementación independiente de JDK para hacerlo mucho mejor
JVM : convierte el código Java en bytecode y proporciona las especificaciones que indican cómo se debe compilar, cargar, verificar, verificar errores y ejecutar un código Java
JRE : implementación de la JVM con la que se utilizan algunas bibliotecas Java para ejecutar el programa
fuente
JRE ejecuta la aplicación pero JVM lee las instrucciones línea por línea, por lo que es intérprete.
JDK = JRE + Herramientas de desarrollo
JRE = JVM + Clases de biblioteca
fuente
JVM se abrevia como Java Virtual Machine , JVM es el componente principal de la arquitectura java. JVM está escrito en lenguaje de programación C. El compilador de Java produce el código de byte para JVM. JVM leyendo el código de bytes verificando el código de bytes y vinculando el código con la biblioteca.
JRE se abrevia como Java Runtime Environment . Es proporcionar entorno en tiempo de ejecución. Es físicamente existe. Contiene JVM + conjunto de bibliotecas (jar) + otros archivos.
JDK se abrevia como Java Development Kit . Es desarrollar aplicaciones Java. Y también Depuración y monitoreo de aplicaciones java. JDK contiene herramientas de desarrollo JRE + (javac, java)
OpenJDK OpenJDK es una versión de código abierto de sun JDK. Oracle JDK es el JDK oficial de Sun.
fuente