JDK y JRE: ¿cuál es la diferencia? Análisis de una pregunta popular de principiantes

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿JDK o JRE? ¿Qué elegir como principiante? Aclaremos esto de una vez por todas



Si estás empezando tu camino en el mundo de Java, tarde o temprano te enfrentarás a la pregunta: «¿Qué necesito descargar exactamente? ¿JDK, JRE, o tal vez solo JVM?». Esta pregunta es tan popular que en Stack Overflow ha acumulado miles de visitas y decenas de respuestas. Y no es casualidad: la confusión entre estas abreviaturas puede arruinar tu primer proyecto incluso antes de empezar.



Imagina que Java es una cocina. JRE es un restaurante ya listo, donde puedes ir a comer. Y JDK es la propia cocina con fogones, cuchillos y libros de recetas, donde puedes preparar lo que sea. ¿Notas la diferencia? Vamos a desglosarlo todo para que nunca más dudes sobre qué descargar.



Lo esencial en resumen: JVM, JRE, JDK



Antes de entrar en detalles, entendamos la jerarquía básica. Muchos principiantes piensan que son tres productos diferentes. En realidad, es como una muñeca rusa, donde un componente está dentro de otro.



  • JVM (Java Virtual Machine) — es el corazón. La máquina virtual que ejecuta el bytecode. Por sí sola es inútil, como un motor sin coche.
  • JRE (Java Runtime Environment) — es la JVM + un conjunto de bibliotecas estándar (por ejemplo, java.lang, java.util). Es el entorno para ejecutar programas Java ya compilados.
  • JDK (Java Development Kit) — es el JRE + herramientas de desarrollo: el compilador javac, el depurador jdb, la utilidad javadoc y otras.


Una fórmula sencilla que debes recordar:



JDK = JRE + Herramientas de desarrolloJRE = JVM + Bibliotecas


Ahora, cuando veas en el sitio web de Oracle la línea «Download JDK», sabrás que contiene todo lo necesario tanto para ejecutar como para escribir código.



¿Para qué sirve JRE si ya existe JDK?



Buena pregunta. Si JDK ya incluye JRE, ¿por qué descargar «solo el entorno de ejecución»? La cuestión es el tamaño y el público objetivo.



Imagina que has creado un superjuego en Java y quieres que un amigo lo juegue. Tu amigo no es programador. No va a compilar nada. Solo necesita una «caja» para ejecutar el archivo .jar. Pasarle todo un JDK de casi 300 MB no tiene sentido. JRE ocupa menos espacio (unos 100-150 MB) y no contiene herramientas innecesarias que confundan al usuario común.



Por eso, en los sitios de descarga de Java para usuarios normales se ofrece JRE. Y para desarrolladores, JDK. En las versiones recientes (Java 11+), Oracle fue más allá y prácticamente los fusionó, haciendo que JDK sea un módulo «autosuficiente». Pero conceptualmente, la diferencia sigue existiendo.



¿Cómo verificar qué tienes instalado?



La forma más sencilla es abrir la terminal (línea de comandos) e ingresar un par de comandos. Esto te ahorrará horas de búsqueda en Google cuando algo salga mal.



Paso 1. Verifica la versión de Java (JRE):



java -version


Si JRE está instalado, verás algo como:



java version "17.0.2" 2022-01-18 LTSJava(TM) SE Runtime Environment (build 17.0.2+8-LTS-86)


Paso 2. Verifica el compilador (JDK):



javac -version


Si ves:



javac 17.0.2


¡Felicidades! Tienes JDK instalado. Si el comando no se encuentra, tienes solo JRE o Java no está configurado en las variables de entorno (PATH).



Ejemplo práctico: por qué sin JDK no puedes escribir código



Imaginemos una situación. Solo tienes instalado JRE (por ejemplo, para jugar Minecraft). Abres el bloc de notas y escribes tu primer «¡Hola, mundo!»:



public class HelloWorld {    public static void main(String[] args) {        System.out.println("¡Hola, mundo!");    }}


Guardas el archivo como HelloWorld.java.

Blogs

Book Recommendations