1. Introducción
En esta publicación rápida, aprenderemos cómo encontrar JAVA_HOME en Windows, Mac y Linux.
Como todos sabemos, JAVA_HOME es una variable de entorno que usamos comúnmente para ubicar ejecutables java como java y javac .
2. Formas específicas de Windows para encontrar JAVA_HOME
Si usamos Windows como sistema operativo, primero debemos abrir nuestra línea de comando ( cmd ) y escribir:
echo %JAVA_HOME%
Si JAVA_HOME está definido en nuestro entorno, entonces el comando anterior lo imprimirá.
O podríamos intentar:
where java
Que mostrará la ubicación del ejecutable de Java .
3. Formas específicas de macOS y Linux para encontrar JAVA_HOME
Si usamos macOS o Linux, podemos abrir nuestra terminal y escribir:
echo $JAVA_HOME
Si JAVA_HOME está definido en nuestro entorno, entonces el comando anterior lo imprimirá.
O podríamos intentar:
which java
Lo que probablemente solo nos muestra / usr / bin / java.
Pero, en realidad, esto no es muy útil ya que es un enlace simbólico. Para desentrañar esto, usaremos dirname y readlink ;
para Linux:
dirname $(dirname $(readlink -f $(which javac)))
y para macOS:
$(dirname $(readlink $(which javac)))/java_home
Como resultado, este comando imprime la carpeta java utilizada actualmente.
4. Uso de Java para encontrar JAVA_HOME
Y, si podemos ejecutar java nosotros mismos, también tenemos una forma casi independiente de la plataforma:
java -XshowSettings:properties -version
La ejecución de este comando genera numerosas propiedades, una de ellas es java.home.
Sin embargo, para analizarlo, todavía necesitaremos una herramienta específica de la plataforma.
Para Linux y macOS , usemos grep :
java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home'
Y para Windows, usemos findtr :
java -XshowSettings:properties -version 2>&1 | findstr "java.home"
5. Conclusión
Con esta publicación rápida, hemos aprendido cómo encontrar JAVA_HOME en diferentes sistemas operativos.
Sin embargo, si no funcionaron, tal vez no configuramos la variable JAVA_HOME correctamente al instalar Java.