setear know jdk java_home home java linux directory

know - path java linux



Directorio JAVA_HOME en Linux (10)

¿Hay algún comando de Linux que pueda usar para encontrar el directorio JAVA_HOME ? Intenté imprimir las variables de entorno ("env") pero no puedo encontrar el directorio.


¿Has configurado tu JAVA_HOME

  • Korn y bash shells: export JAVA_HOME = jdk-install-dir
  • Bourne shell: JAVA_HOME = jdk-install-dir; export JAVA_HOME
  • C shell: setenv JAVA_HOME jdk-install-dir

Aquí hay una mejora, agarrando solo el directorio para stdout:

java -XshowSettings:properties -version 2>&1 / | sed ''/^[[:space:]]*java/.home/!d;s/^[[:space:]]*java/.home[[:space:]]*=[[:space:]]*//''


En Linux puede ejecutar $(dirname $(dirname $(readlink -f $(which javac))))

En Mac, puede ejecutar $(dirname $(readlink $(which javac)))/java_home

No estoy seguro de las ventanas, pero me imagino where javac te where javac bastante


En la Terminal, escribe:

echo "$ JAVA_HOME"

Si no obtiene nada, entonces su variable de entorno JAVA_HOME no se ha configurado. Puede intentar usar "locate java" para tratar de descubrir dónde se encuentra su instalación de Java.


Para mostrar el valor de una variable de entorno que utiliza:

echo $ VARIABLE

entonces en tu caso será:

echo $ JAVA_HOME

En caso de que no lo tenga configurado, puede agregarlo en su archivo .bashrc :

exportar JAVA_HOME = $ (readlink -f / usr / bin / java | sed "s: bin / java ::")

y cambiará dinámicamente cuando actualice sus paquetes.


Sé que es tarde, pero este comando busca en el directorio / usr / para encontrar Java para ti

sudo find /usr/ -name *jdk

Resultados a

/usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-1.6.0-openjdk

FYI, si está en una Mac, actualmente JAVA_HOME se encuentra en

/System/Library/Frameworks/JavaVM.framework/Home


Si $JAVA_HOME está definido en su entorno ...

$ echo $JAVA_HOME $ # I am not lucky...

Puedes adivinarlo desde las clases que están cargadas.

$ java -showversion -verbose 2>&1 | head -1 [Opened /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64/jre/lib/rt.jar]

Este método garantiza que encuentre el jdk / jre correcto utilizado en caso de que haya varias instalaciones.

O usando strace :

$ strace -e open java -showversion 2>&1 | grep -m1 /jre/ open("/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64/jre/bin/../lib/amd64/jli/tls/x86_64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)


Solo otra solución, la plataforma cruzada de esta (usa java ), y te indica la ubicación de la jre.

java -XshowSettings:properties -version 2>&1 > /dev/null | grep ''java.home''

java.home todas las configuraciones actuales de java , y encuentra una llamada java.home .



echo $JAVA_HOME imprimirá el valor si está configurado. Sin embargo, si no lo configuró manualmente en los scripts de inicio, probablemente no esté configurado.

Si prueba which java y no encuentra nada, es posible que Java no esté instalado en su máquina o que al menos no esté en su ruta. Según la distribución de Linux que tenga y si tiene o no acceso de root, puede ir a http://www.java.com para descargar la versión que necesita. Luego, puede configurar JAVA_HOME para que apunte a este directorio. Recuerde, esto es solo una convención y no debe usarse para determinar si java está instalado o no.