¿Hay algún comando de Linux que pueda utilizar para encontrar el directorio JAVA_HOME
? Intenté imprimir las variables de entorno ("env") pero no puedo encontrar el directorio.Directorio JAVA_HOME en Linux
Respuesta
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, Java puede no estar instalado en su máquina, o al menos no está en su camino. Según la distribución de Linux que tenga y si tiene o no acceso de root, puede ir al 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.
en el terminal, escriba:
echo "$ JAVA_HOME"
Si usted no está recibiendo nada, entonces su variable de entorno JAVA_HOME no se ha establecido. Puede intentar usar "locate java" para tratar de descubrir dónde se encuentra su instalación de Java.
¿Ha definido su JAVA_HOME
- Korn y golpe conchas: export JAVA_HOME = JDK dir-instalación-
- shell Bourne: JAVA_HOME = JDK dir-instalación-; export JAVA_HOME
- shell C: setenv JAVA_HOME JDK dir-instalación-
¿Falta un punto y coma allí? –
fijo, gracias Tom –
sé que es tarde, pero este comando busca en el directorio/usr/directorio para encontrar java para que
sudo find /usr/ -name *jdk
Resultados a
/usr/lib/jvm/java-6-openjdk
/usr/lib/jvm/java-1.6.0-openjdk
FYI, si usted está en un Mac, actualmente JAVA_HOME se encuentra en
/System/Library/Frameworks/JavaVM.framework/Home
tenido que utilizar sudo find/-name * javac para encontrar el Oracle VM había instalado – bulltorious
Es posible que desee para tratar de encontrar 'sudo/usr/-name * *' JDK ya que mi camino era '/ usr/lib/jvm/java-7-openjdk-amd64 /'. – JVE999
En Linux se puede ejecutar $(dirname $(dirname $(readlink -f $(which javac))))
En Mac puede ejecutar $(dirname $(readlink $(which javac)))/java_home
No estoy seguro acerca de las ventanas pero imagino where javac
le conseguiría bastante cerca
Esta es una gran solución, pero recuerde utilizar la marca canónica para readlink, ya que Java se puede configurar con múltiples enlaces, por lo tanto use '$ (dirname $ (dirname $ (readlink -f $ (which javac))))' en Linux en su lugar –
Gracias @ MatthewO'Riordan! Agregué el indicador '-f' para el comando linux. Tenga en cuenta que 'readlink' en mac no es la versión' GNU', por lo que excluí '-f' para la versión mac del script. Los usuarios de Mac que tienen instalada la versión 'GNU' de' readlink' mediante brew pueden usar '-f'. – jsdevel
Esto es particularmente bueno para las personas que usan/etc/alternatives para administrar diferentes versiones de Java. – gilbertpilz
Para mostrar el valor de una variable de entorno que utilice:
echo $ VARIABLE
por lo que en su caso será:
echo $ JAVA_HOME
En caso de que no lo tiene setted, se puede añadir en su .bashrc
archivo:
export JAVA_HOME = $ (readlink -f/usr/bin/java | sed "s: bin/java ::")
y cambiará dinámicamente cuando actualice sus paquetes.
funciona bien en Fedora y Ubuntu –
comando inseguro: ¿Qué pasa si/usr/bin/java era un enlace simbólico a '/ usr/bin/java-8/bin/java'? Obtendrás la salida '/ usr/-8/bin/java'. – GKFX
¡Solución fantástica! si quieres usar jdk como página principal en lugar de jre solo modifica readlink -f/usr/bin/java | sed "s: jre/bin/java ::" – cyberoblivion
http://www.gnu.org/software/sed/manual/html_node/Print-bash-environment.html#Print-bash-environment
Si usted realmente desea conseguir algo de información acerca de su BASH puso esa secuencia de comandos en su .bashrc y verlo volar por. Puede desplazarse y examinarlo.
Si $JAVA_HOME
se define en su entorno ...
$ echo $JAVA_HOME
$ # I am not lucky...
Se puede adivinar que de las clases que se cargan.
$ 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 asegura que encuentre la correcta jdk
/jre
utilizado en caso de que existan 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)
Sólo otra solución, multiplataforma de este (utiliza java
), y que apunta a la ubicación del JRE.
java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home'
Salidas todos los ajustes actuales de java
's, y encuentra el llamado java.home
.
He investigado muchas maneras de encontrar JAVA_HOME y creo que este es uno de los mejores. Gracias por mencionarlo! – ricovox
¡Me alegro de que haya sido útil! –
Probablemente valga la pena mencionar que esto comenzó a funcionar con JDK1.7 (IIRC). Antes de eso, habría necesitado llamar a: 'jrunscript -e 'java.lang.System.out.println (java.lang.System.getProperty (" java.home "));' '. En ambos casos, para aspectos de 'multiplataforma', es recomendable anteponer un '/ usr/bin/env'. – Moreaki
Aquí es una mejora, tomando sólo el directorio de la salida estándar:
java -XshowSettings:properties -version 2>&1 \
| sed '/^[[:space:]]*java\.home/!d;s/^[[:space:]]*java\.home[[:space:]]*=[[:space:]]*//'
Un poco más corto, aunque con tres tenedores en lugar de dos, es el siguiente: ': $ {JAVA_HOME: = $ (/ usr/bin/env java -XshowSettings: propiedades -versión 2> & 1 | grep" java.home "| cut -d "=" -f2)} ' – Moreaki
Si se necesita exportar la ruta directamente:' export $ (/ usr/bin/env java -XshowSettings: properties -version 2> & 1 | grep "java.home" | sed -e 's/java.home/JAVA_HOME /; s/// g;') ' – Moreaki
- 1. Jenkins, especificando JAVA_HOME
- 2. JAVA_HOME no encontrado como Sudo
- 3. Configuración JAVA_HOME en Android SDK
- 4. Nutch-Cygwin Cómo configurar JAVA_HOME
- 5. Obtener directorio de inicio en Linux, C++
- 6. ¿Cómo encuentro el directorio 'temp' en Linux?
- 7. Maven, JAVA_HOME con OS X
- 8. Tomcat startup.sh encontrando JAVA_HOME
- 9. java web start JAVA_HOME
- 10. ¿Cómo cambio JAVA_HOME para hormiga?
- 11. JAVA_HOME y java -version
- 12. ¿Es malo poner tarros externos en el directorio JAVA_HOME/lib/ext?
- 13. ¿Cuál es la ruta correcta para JAVA_HOME en un sistema Linux que usa alternativas?
- 14. ¿Qué es JAVA_HOME? ¿Cómo encuentra la JVM la ruta javac almacenada en JAVA_HOME?
- 15. hacer $ JAVA_HOME fácilmente cambiable en Ubuntu
- 16. JAVA_HOME incorrectamente establecido. Cómo restablecerlo?
- 17. JAVA_HOME se destruye por Maven
- 18. Diferencia entre JAVA_HOME y JRE_HOME
- 19. Redhat Linux - cambie el color del directorio
- 20. Ubicación del directorio Linux/Ubuntu ~/.vim/syntax/
- 21. Comando de Linux para mover un directorio
- 22. ¿Dónde colocar el directorio de repositorio SVN en Linux?
- 23. un programa para supervisar un directorio en Linux
- 24. Establecer programáticamente un icono personalizado de carpeta/directorio en Linux
- 25. Linux fork/exec a la aplicación en el mismo directorio
- 26. cambiar el directorio actual en Linux usando C++
- 27. Java File.isDirectory() devuelve false para un directorio en Linux
- 28. ¿Cómo verificar el directorio existe o no en Linux.?
- 29. Compruebe si un directorio está vacío usando C en Linux
- 30. Busque el archivo y cd a ese directorio en Linux
JAVA_HOME ya no se define en los sistemas Linux y está en desuso. –
@PeterQuiring debe citar su fuente para esa declaración ... usted está completamente equivocado. – harschware
@harschware Cuando instalo Ubuntu, JAVA_HOME no está configurado, incluso con el JDK instalado. Lea también/usr/share/doc/openjdk-8-jre-headless/JAVA_HOME y dice que JAVA_HOME ya no es necesario (heredado). –