- 1 1. Lo que aprenderás en este artículo (Lo esencial al frente)
- 2 2. Comienza aquí: Lista de comandos para verificar la versión de Java (Copia y pega)
- 2.1 2.1 Verificar la versión de Java usada en tiempo de ejecución
- 2.2 2.2 Verificar la versión del entorno de desarrollo de Java (JDK)
- 2.3 2.3 La diferencia entre java -version y javac -version (Confusión común entre principiantes)
- 2.4 2.4 Verificar usando una herramienta del JDK (Opcional)
- 2.5 2.5 Orden recomendado para comprobar (Amigable para principiantes)
- 3 3. Cómo leer java -version (Ejemplo de salida y cómo interpretarla)
- 4 4. Cómo leer javac -version (Confirmar si el JDK está instalado)
- 5 5. Cómo comprobar la versión de Java en Windows
- 5.1 5.1 Comprobar usando el Símbolo del sistema / PowerShell (Básico)
- 5.2 5.2 Un comando clave específico de Windows: where java
- 5.3 5.3 Por qué se sigue usando una versión antigua de Java incluso después de la instalación
- 5.4 5.4 Cómo comprobar JAVA_HOME (Windows)
- 5.5 5.5 Lista de verificación segura para Windows
- 5.6 5.6 La verificación mediante la GUI (pantalla de Variables de entorno) puede esperar
- 6 6. Cómo comprobar la versión de Java en macOS
- 7 7. Cómo comprobar la versión de Java en Linux
- 8 8. Por qué la versión de Java mostrada difiere (causas y soluciones)
- 9 9. Una lista de verificación para ir más allá de simplemente “comprobar”
- 10 10. Preguntas frecuentes (FAQ)
1. Lo que aprenderás en este artículo (Lo esencial al frente)
En esta página, organizaremos la forma más rápida de lograr tu objetivo de “verificar la versión de Java desde la línea de comandos.”
Para compartir la conclusión primero, los comandos que usualmente usarás son estos dos:
- La versión de Java que realmente se ejecuta →
java -version - La versión del JDK (compilador) para desarrollo →
javac -version
Sin embargo, en entornos del mundo real, es muy común encontrar que “la versión que esperabas no es la que aparece.”
Este artículo no solo lista comandos—también explica por qué ocurre la discrepancia y cómo arreglarla.
1.1 Lo que podrás hacer después de leer
Al final, podrás hacer lo siguiente:
Verificar tu versión de Java inmediatamente wp:list /wp:list
- Usar con confianza
java -versionyjavac -versionpara el propósito correcto Entender cómo verificar en Windows / macOS / Linux wp:list /wp:list
Verificar Java considerando las diferencias comunes específicas del SO
Identificar qué Java se está usando incluso cuando hay múltiples versiones instaladas wp:list /wp:list
Solucionar problemas de “Lo instalé, pero aún aparece una versión anterior” por tu cuenta
Entender las causas típicas y soluciones cuando la versión mostrada no es la esperada wp:list /wp:list
Aprender los básicos de PATH, JAVA_HOME, y configuraciones de cambio de versión
- Usar con confianza
1.2 Audiencia objetivo (Principiantes bienvenidos)
- Necesitas usar Java y quieres saber qué Java está instalado en tu PC primero
- Te han dicho “Se requiere Java 17” o “Solo Java 8,” y necesitas verificar tu versión actual
- Ejecutaste un comando y obtuviste una versión diferente a la esperada, y estás atascado
javafunciona perojavacno, y no entiendes completamente las diferencias JRE/JDK
1.3 Un punto clave que debes saber desde el principio (Muy importante)
La mayor parte de la confusión sobre verificar la versión de Java se reduce a este punto:
- “Java instalado en la máquina” no es lo mismo que “Java que realmente se ejecuta.”
Cuando hay múltiples instalaciones de Java, el Java que se ejecuta es el encontrado en la ubicación de mayor prioridad en tiempo de ejecución.
Por eso, el resultado de java -version puede no ser “la versión más reciente que acabas de instalar.”
Teniendo en cuenta esa discrepancia, este artículo explica, en orden:
- Qué ejecutar primero (el camino más corto)
- Qué verificar después para identificar la causa (pasos de investigación)
- Cómo arreglarlo (pasos de resolución)
paso a paso.
2. Comienza aquí: Lista de comandos para verificar la versión de Java (Copia y pega)
No necesitas muchos comandos para verificar tu versión de Java.
Si solo recuerdas esta sección, resolverás aproximadamente el 90% de los casos.
2.1 Verificar la versión de Java usada en tiempo de ejecución
java -version
Este comando muestra la versión de Java que realmente se ejecuta en esta PC en este momento.
Es la forma más básica—y más importante—de confirmar tu entorno de Java.
Qué incluye típicamente la salida (Ejemplo)
- El número de versión de Java (p. ej., 17 / 21 / 1.8, etc.)
- La implementación (OpenJDK / Oracle JDK, etc.)
- Detalles del entorno de ejecución como 64-bit / Server VM
El punto clave es este: apunta al java que tiene la mayor prioridad en tu PATH.
No se trata de “dónde instalaste Java,” sino de “qué Java se está invocando.” Tenlo en cuenta.
2.2 Verificar la versión del entorno de desarrollo de Java (JDK)
javac -version
Este comando muestra la versión del compilador de Java (javac).
Qué te dice esto
- Si el JDK está instalado correctamente
- Si puedes usar Java no solo para ejecutar apps, sino también para desarrollo/compilaciones
Si este comando muestra algo como:
- “command not found”
- “
javacno se reconoce como un comando interno o externo”
entonces es muy probable que el JDK no esté instalado o que tu PATH no esté configurado correctamente.
2.3 La diferencia entre java -version y javac -version (Confusión común entre principiantes)
| Command | What It Checks | Main Use |
|---|---|---|
java -version | Java at runtime | Running apps / verifying runtime behavior |
javac -version | Compiler (JDK) | Development / builds |
Un malentendido frecuente es:
- Si
java -versionfunciona, puedes desarrollar código Java. Esto no es correcto. - Ejecutar únicamente →
java - Desarrollar (compilar) →
javac
Estos dos tienen roles diferentes, por lo que comprobar ambos es el enfoque estándar.
2.4 Verificar usando una herramienta del JDK (Opcional)
Dependiendo de tu entorno, también puedes comprobar la versión del JDK con el siguiente comando:
jshell --version
jshelles una herramienta incluida por defecto en JDK 9 y posteriores- Si esto funciona, es una buena señal de que el JDK está instalado
Dicho esto, mientras comprendas java -version y javac -version, normalmente es suficiente.
2.5 Orden recomendado para comprobar (Amigable para principiantes)
Si eres nuevo en esto, comprobar en el siguiente orden reduce la confusión:
java -version→ Verifica la versión de Java usada en tiempo de ejecuciónjavac -version→ Confirma que el JDK de desarrollo está disponible- Si los resultados no son los esperados, consulta la siguiente sección para verificaciones específicas del SO
3. Cómo leer java -version (Ejemplo de salida y cómo interpretarla)
En esta sección desglosaremos lo que aparece al ejecutar java -version, paso a paso para que los principiantes no se pierdan.
Esto evita la situación frecuente de “no sé qué debo observar”.
3.1 El rol básico de java -version
java -version
Lo que este comando indica es la versión de Java que se ejecutará ahora mismo.
No muestra una lista de versiones de Java instaladas; muestra la que realmente se está usando.
Por eso este resultado se convierte en la referencia para cosas como:
- Si cumples con la versión de Java requerida por una aplicación o herramienta
- Si los entornos de producción/pruebas están ejecutando la versión de Java prevista
- Si una versión antigua de Java se está usando inesperadamente
3.2 Ejemplo típico de salida (Ilustración)
La redacción exacta varía según el entorno, pero generalmente verás algo como esto:
java version "17.0.8"
Java(TM) SE Runtime Environment (build 17.0.8+9)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.8+9, mixed mode)
Dentro de esta salida, la parte más importante es la primera línea.
3.3 Qué comprobar primero (Esto es todo lo que necesitas)
① Número de versión
java version "17.0.8"
17→ serie Java 171.8.x→ Java 821.x→ Java 21
En muchas empresas, las versiones LTS (Soporte a Largo Plazo) como 8 / 11 / 17 / 21 son las más usadas.
Primero, confirma si es la versión principal que tu proyecto requiere.
② Distribución de Java (Oracle / OpenJDK, etc.)
Java(TM) SE Runtime Environment
o
OpenJDK Runtime Environment
En la mayoría de los casos no es necesario ser demasiado estricto con esto para una verificación básica.
Sin embargo, algunas compañías o proyectos pueden requerir explícitamente “Oracle JDK” o “OpenJDK”, por lo que puede importar según tu entorno.
③ “64‑bit” / “Server VM”
64-Bit Server VM
- En la mayoría de los entornos modernos, 64‑bit es lo normal
- A menos que tengas una razón especial, una verificación rápida aquí es suficiente
3.4 Por qué obtienes “una versión de Java diferente a la esperada”
Este es el punto que más confunde a los principiantes.
Un malentendido común
- “Instalé la última versión de Java.”
- “Así que
java -versiondebería mostrar la última versión.”
En realidad, eso no está garantizado.
La razón es simple:
java -versionejecuta el primerjavaque encuentra con mayor prioridad en el PATH
Por eso.
En otras palabras, si:
- Una versión antigua de Java queda antes en el PATH
- Hay varias instalaciones de JDK/JRE mezcladas
entonces puede ejecutarse una versión de Java distinta a la que instalaste.
3.5 java -version verifica el “resultado”, no la “ubicación”
Como forma importante de pensar:
- ❌ Dónde está instalado Java
- ⭕ Qué Java se está ejecutando realmente
Eso es para lo que sirve java -version.
Primero, simplemente decide si el resultado mostrado es correcto.
Si no lo es, usa las siguientes secciones para identificar la causa y corregirlo—ese es el flujo de trabajo más seguro.
4. Cómo leer javac -version (Confirmar si el JDK está instalado)
Aquí explicaremos el papel de javac -version y cómo interpretarlo.
Entender este comando rápidamente resuelve un problema frecuente: “Java se ejecuta, pero no puedo desarrollar/compilar.”
4.1 ¿Qué es javac? (Amigable para principiantes)
javac es la abreviatura de Java Compiler (Compilador de Java).
java→ ejecuta un programa ya compiladojavac→ compila código fuente (.java)
Así que los roles son:
- Si solo quieres ejecutar Java → basta
java - Si quieres desarrollar/compilar Java → necesitas
javac
Esa es la división básica de responsabilidades.
4.2 Qué aprendes con javac -version
javac -version
Este comando muestra la versión del compilador de Java que se está usando actualmente.
Salida de ejemplo (Ilustración)
javac 17.0.8
El número que aparece aquí puede interpretarse como:
- La versión del JDK en sí
- La versión base de Java utilizada para la compilación en la práctica
Ese entendimiento es suficiente en la mayoría de los casos del mundo real.
4.3 Notas importantes cuando no coincide con java -version
Este tipo de desajuste ocurre con frecuencia en el trabajo real:
java -version→ 17javac -version→ 11
En ese caso, tienes una configuración incongruente:
- Tiempo de ejecución: Java 17
- Desarrollo: Java 11
Problemas que este desajuste puede causar
- No puedes usar características de lenguaje más recientes
- La compilación tiene éxito, pero aparecen errores en tiempo de ejecución
- El comportamiento difiere entre CI y entornos locales
Por lo tanto, como política básica, es más seguro alinear ambas versiones.
4.4 Cuando javac no se encuentra (Errores comunes)
Puedes ver mensajes como los siguientes:
- “
javacno se reconoce como un comando interno o externo” - “command not found: javac”
En este caso, las causas probables casi siempre son una de estas dos:
Causa 1: El JDK no está instalado
- Solo está instalado el JRE (tiempo de ejecución)
- No se incluyen las herramientas de desarrollo
Causa 2: PATH no está configurado
- El JDK está instalado, pero el directorio
binno está incluido en PATH
Puedes distinguir de forma fiable entre estas situaciones en las secciones de confirmación específicas del SO.
4.5 javac -version es una señal de “¿Puedo desarrollar?”
Si eres principiante, recordarlo de esta forma evitará confusiones:
java -version→ ¿Puedo ejecutar Java?javac -version→ ¿Puedo desarrollar/compilar Java?
Si ambos comandos muestran las versiones esperadas,
tu entorno Java está en un estado donde la configuración mínima necesaria está completa.
5. Cómo comprobar la versión de Java en Windows
Esta sección explica cómo comprobar la versión de Java en Windows, incluyendo puntos que suelen causar problemas en el uso real.
Dado que Windows es un SO donde a menudo coexisten varias instalaciones de Java, el orden de las comprobaciones es especialmente importante.
5.1 Comprobar usando el Símbolo del sistema / PowerShell (Básico)
Primero, comienza con el método más básico.
- Abre Command Prompt o PowerShell
- Ejecuta el siguiente comando
java -version
Si planeas desarrollar con Java, también verifica esto:
javac -version
En este punto:
- Si ambas versiones son las esperadas → Sin problema
- Si la versión no es la que esperabas → Identifica la causa en los pasos siguientes
Así es como deberías juzgar el resultado.
5.2 Un comando clave específico de Windows: where java
En Windows, es extremadamente importante identificar qué java.exe se está usando realmente.
where java
Salida de ejemplo (Ilustración)
C:\Program Files\Java\jdk-17\bin\java.exe
C:\Program Files\Common Files\Oracle\Java\javapath\java.exe
Si se muestran varias líneas, la que aparece en la parte superior tiene la mayor prioridad y es la que realmente se ejecuta.
5.3 Por qué se sigue usando una versión antigua de Java incluso después de la instalación
Causas comunes en Windows incluyen:
- Sigue presente una instalación anterior de Java
javapathaparece antes en la variable PATH- JAVA_HOME y PATH no coinciden
En particular, si el siguiente directorio está incluido en PATH:
C:\Program Files\Common Files\Oracle\Java\javapath
a menudo provoca que se invoque una versión de Java no deseada.

5.4 Cómo comprobar JAVA_HOME (Windows)
A continuación, verifica JAVA_HOME.
echo %JAVA_HOME%
- Si no se muestra nada → JAVA_HOME no está configurado
- Si se muestra una ruta inesperada → Puede estar apuntando a una versión antigua de Java
Ejemplo de una configuración correcta
C:\Program Files\Java\jdk-17
Ten en cuenta que debe apuntar al directorio raíz del JDK, no al directorio bin.
5.5 Lista de verificación segura para Windows
Para principiantes, comprobar en este orden ayuda a evitar confusiones:
java -versionjavac -versionwhere javaecho %JAVA_HOME%
Si las cuatro comprobaciones son correctas,
puedes concluir que tu entorno Java en Windows está configurado adecuadamente.
5.6 La verificación mediante la GUI (pantalla de Variables de entorno) puede esperar
Windows también ofrece una pantalla GUI para ver y editar variables de entorno, pero:
- Qué Java se está usando
- Por qué hay una discrepancia
se juzgan con mucha mayor precisión usando la salida de los comandos.
Utiliza la GUI cuando necesites corregir la configuración,
pero siempre verifica con los comandos; ese es el enfoque práctico.
6. Cómo comprobar la versión de Java en macOS
Esta sección explica cómo comprobar la versión de Java en macOS.
A diferencia de Windows, macOS tiene un mecanismo a nivel de sistema para gestionar JDKs, por lo que conocer los comandos dedicados ayuda a evitar confusiones.
6.1 Comprobar los comandos básicos en Terminal
Primero, comienza con los mismos comandos básicos que se usan en cualquier lugar.
- Abre Terminal
- Ejecuta el siguiente comando
java -version
Si planeas desarrollar con Java, también verifica:
javac -version
Si estos dos resultados son los esperados,
el entorno Java realmente usado en macOS está bien.
6.2 Nota: macOS gestiona automáticamente JAVA_HOME
En macOS, es habitual no codificar JAVA_HOME de forma estática,
sino obtenerlo dinámicamente mediante un comando del sistema.
El comando representativo es:
/usr/libexec/java_home
Ejemplo de salida (ilustración)
/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
Esta ruta es el directorio home del JDK predeterminado actual.
6.3 Listar los JDK instalados
Si tienes varios JDK instalados, el siguiente comando es extremadamente útil:
/usr/libexec/java_home -V
Al ejecutar este comando se muestra:
- Versiones de JDK instaladas
- Proveedores (Oracle / basados en OpenJDK, etc.)
- Arquitecturas soportadas
En macOS, esta es la forma más segura de confirmar primero qué JDKs están realmente instalados.
6.4 Cuando java -version y java_home no coinciden
Puedes encontrarte con una situación como esta:
/usr/libexec/java_home→ Java 17java -version→ Java 11
En esos casos, las causas probables son:
JAVA_HOMEestá fijado en archivos de configuración del shell (.zshrc/.bashrc)- Un Java diferente aparece antes en PATH
- Un Java instalado con Homebrew está tomando prioridad
En macOS, los ajustes a nivel de usuario tienen precedencia,
por lo que los archivos de configuración del shell influyen fuertemente.
6.5 Lista de verificación segura para macOS
En macOS, comprobar en este orden mantiene todo organizado:
java -versionjavac -version/usr/libexec/java_home/usr/libexec/java_home -V
Con estas cuatro comprobaciones, puedes entender con precisión:
- El Java que se está usando actualmente
- La lista de versiones de Java instaladas
- El JDK predeterminado
sin ambigüedades.
6.6 Piensa en términos de “cambio” en macOS
En macOS, es habitual que:
- Diferentes proyectos requieran distintas versiones de Java
- Cambies entre varios JDKs
Por lo tanto:
- No asumas que solo hay una versión de Java
- Siempre confirma qué versión de Java está en uso actualmente
Mantener esta mentalidad facilita mucho evitar problemas.
7. Cómo comprobar la versión de Java en Linux
Esta sección explica cómo comprobar la versión de Java en entornos Linux, especialmente para uso en servidores.
Aunque los métodos de gestión varían según la distribución, los conceptos básicos son los mismos.
7.1 Comienza con los comandos básicos
En Linux también, empieza con los comandos habituales:
java -version
Si se requieren desarrollos o compilaciones, también verifica:
javac -version
Con estos dos comandos puedes determinar si:
- El Java usado en tiempo de ejecución
- El JDK usado para la compilación
coinciden con tus expectativas.
7.2 Usa which java para encontrar el binario real
En Linux es importante saber qué ejecutable se está invocando realmente.
which java
Salida de ejemplo
/usr/bin/java
Esta ruta es el binario real de Java que utiliza java -version.
Si necesitas más detalle, ejecuta:
ls -l $(which java)
Esto te permite rastrear el enlace simbólico hasta su objetivo real.
7.3 Gestionar múltiples versiones de Java en Debian / Ubuntu (update-alternatives)
En los servidores es muy frecuente tener varias versiones de Java instaladas.
En sistemas basados en Debian/Ubuntu, estas suelen gestionarse con update-alternatives.
Listar alternativas de Java
update-alternatives --list java
Ver la selección actual
update-alternatives --display java
La ruta mostrada aquí es el Java seleccionado a nivel del sistema.
7.4 Cuando java -version y las alternativas no coinciden
A veces puedes observar una discrepancia como:
update-alternatives→ Java 17java -version→ Java 11
Posibles causas incluyen:
- Un Java diferente aparece en el PATH del usuario
- Existe un Java instalado manualmente en
/usr/local/bin, etc. - El PATH difiere entre la ejecución normal y
sudo
En Linux, tanto:
- Configuraciones a nivel de sistema
- Entorno a nivel de usuario
pueden influir en qué Java se ejecuta.
7.5 Lista de verificación segura para Linux
En Linux, comprobar en este orden mantiene todo claro:
java -versionjavac -versionwhich javaupdate-alternatives --display java(si corresponde)
Esto te brinda una visión completa de:
- El Java que está ejecutándose actualmente
- El archivo ejecutable real
- La configuración del sistema
de un vistazo.
8. Por qué la versión de Java mostrada difiere (causas y soluciones)
La mayoría de los problemas de versión de Java no se deben a los comandos en sí, sino a la configuración del entorno.
A continuación resumimos causas que se aplican a todos los sistemas operativos.
8.1 Causa 1: La prioridad del PATH no es la esperada
Esta es la causa más frecuente.
- Un directorio
binde Java antiguo aparece antes en el PATH - Instalaste un Java nuevo pero no actualizaste el PATH
Cómo solucionarlo
- Identifica qué Java se está ejecutando realmente
- Elimina entradas innecesarias del PATH o corrige su orden
Simplemente “añadir” una nueva ruta a menudo no es suficiente.
8.2 Causa 2: JAVA_HOME no coincide con el Java en ejecución
- JAVA_HOME → Java 11
- Java en ejecución → Java 17
Esta situación también es muy común.
Cómo solucionarlo
- Establece JAVA_HOME al directorio raíz del JDK
- Asegúrate de que el PATH use
$JAVA_HOME/bin
Piensa en JAVA_HOME como una “referencia”, y en PATH como la “prioridad de ejecución”.
8.3 Causa 3: java y javac usan versiones diferentes
Este es un caso clásico de mezcla de versiones de JRE y JDK.
- El tiempo de ejecución funciona
- El desarrollo o las compilaciones fallan
Cómo solucionarlo
- Elige un JDK como estándar
- Alinea
javayjavacbajo el mismo JDK
8.4 Causa 4: El IDE o las herramientas de compilación usan un JDK diferente
- Todo parece correcto en la terminal
- Aparecen errores en el IDE o en CI
En estos casos, la causa suele ser la configuración del JDK específica del IDE.
Cómo solucionarlo
- Verifique explícitamente el JDK usado en la configuración del IDE
- No confíe únicamente en la “detección automática”
9. Una lista de verificación para ir más allá de simplemente “comprobar”
Finalmente, organicemos lo que debe hacer después de comprobar su versión de Java.
9.1 Si su objetivo es solo ejecutar Java
- ¿
java -versioncumple con los requisitos? - ¿La aplicación se inicia correctamente?
9.2 Si su objetivo es desarrollo o compilaciones
- ¿
javac -versioncumple con los requisitos? - ¿
javayjavacmuestran la misma versión? - ¿JAVA_HOME y PATH están alineados?
9.3 Si usa múltiples versiones de Java
- Confirme siempre qué Java está en uso actualmente
- Comprenda la gestión específica del SO (macOS / Linux)
10. Preguntas frecuentes (FAQ)
10.1 ¿Cuál es la diferencia entre java -version y javac -version?
java -version verifica la versión del tiempo de ejecución de Java,
mientras que javac -version verifica la versión del compilador de desarrollo (JDK).
Dado que cumplen propósitos diferentes, comprobar ambos es la práctica estándar.
10.2 ¿Por qué no se encuentra javac?
- El JDK no está instalado
- PATH no está configurado correctamente
En la mayoría de los casos, se trata de una de estas dos razones.
10.3 Instalé Java, pero sigue apareciendo una versión antigua
Esto suele significar que otro Java tiene mayor prioridad en PATH.
Verifique el binario real con where java (Windows) o which java (macOS/Linux).
10.4 ¿Puedo usar varias versiones de Java de forma segura?
Sí, puede.
Sin embargo, es fundamental saber siempre qué Java está en uso actualmente.
10.5 ¿Qué versión de Java debo usar?
Si no hay un requisito especial, elegir una versión LTS (Long‑Term Support) es la opción más segura.
Si su proyecto especifica una versión, siempre priorice ese requisito.

