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
.
http://www.gnu.org/software/sed/manual/html_node/Print-bash-environment.html#Print-bash-environment
Si realmente quieres obtener información sobre tu BASH, coloca esa secuencia de comandos en tu .bashrc y mírala pasar volando. Puede desplazarse y examinarlo.
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.