¿Cómo encontrar mi JAVA_HOME actual en ubuntu?

55

¿Cómo encontrar mi JAVA_HOME actual en ubuntu? Tengo que establecer la ruta java_home al instalar maven.

Samitha Chathuranga
fuente

Respuestas:

84

Escriba en la terminal,

echo $JAVA_HOME

Mostrar ruta variable JAVA_HOME.

SI NADA APARECE ENTONCES CONFIGURAR CON ESTO

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

Esto diferirá según su tipo y versión de JDK

Para mostrar siga el primer comando.

Siga esta publicación para usar diferentes JDK o cambie entre JDK

Profundizar
fuente
Da "/ usr / lib / jvm / java-6-sun". Pero he instalado java 7. Cuando lo reviso usando "java -version" me da la versión java "1.7.0_45" Java (TM) SE Runtime Environment (build 1.7.0_45-b18) Java HotSpot (TM) Server VM (build 24.45-b08, modo mixto)
Samitha Chathuranga
2
luego ejecute el segundo comando para configurar la variable JAVA_HOME. NOTA:JAVA_HOME doesn't make jdk default, it just makes JAVA_HOME variable set to a path & if you want to use different jdk installed on same machine then check my answer, I have edited it.
Profundizar
deberías configurarlo en / etc / environment
keiki
@ Jax-L Pero ahora, cuando doy eco JAVA_HOME, solo se muestra como "JAVA_HOME". El camino que di no se muestra ... ???
Samitha Chathuranga
2
export funciona solo hasta que reinicie. O agrega exportar al script de inicio de sesión .bashrc. Pero la forma correcta de establecer tales variables de entorno es en / etc / environment
keiki
34

Si tiene JDK 1.6 (correspondiente a Java 6) o una versión más reciente instalada, debe tener un programa nombrado jrunscripten su PATH. Puede usar esto para encontrar el correspondiente JAVA_HOME. Ejemplo:

$ jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));'
/opt/local/jdk1.7.0_76/jre

Puede establecer la variable de entorno de esta manera:

$ export JAVA_HOME="$(jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));')"

Tenga en cuenta que el JRE no incluye jrunscript, por lo que esto solo funcionará si instala el JDK, no solo el JRE.

Rob Mayoff
fuente
Fue mucho por lo que pasar para descubrir que necesitaba ir un directorio más profundo, pero gracias.
cnizzardini
15

Otra opción portátil es extraer la ruta absoluta del JDK de javac:

export JAVA_HOME=`type -p javac|xargs readlink -f|xargs dirname|xargs dirname`

La javacruta absoluta se pasa dirnamedos veces para eliminar /bin/javacdel final. La extracción completa del directorio es la siguiente:

$ type -p javac
/usr/bin/javac

$ readlink -f /usr/bin/javac
/usr/lib/jvm/java-8-oracle/bin/javac

$ dirname /usr/lib/jvm/java-8-oracle/bin/javac
/usr/lib/jvm/java-8-oracle/bin/

$ dirname /usr/lib/jvm/java-8-oracle/bin/
/usr/lib/jvm/java-8-oracle/
rzymek
fuente
1
se puede usar type -p javac|xargs readlink -f|xargs dirname|xargs dirname(sin la parte de exportación) para conocer el directorio sin configurarlo.
Mina Michael
¡Exactamente lo que estaba buscando! Brillante respuesta!
Silviu Burcea
7

Para tener en cuenta el mecanismo de actualización de alternativas:

$ update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre'

Puede establecer la variable de entorno de esta manera:

$ export JAVA_HOME="$(update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre')"
Francisco
fuente
Esto no le da a JAVA_HOME, ya que todavía tendrá el final /jre. Puede intentarexport JAVA_HOME="$(update-alternatives --query java | grep 'Value: ' | sed -e 's/Value: //;s?/jre/bin/java??;')"
James Brusey
7

Solo ejecuta un comando

 sudo update-alternatives --config java

Dará algo como

Es gibt nur eine Alternative in Link-Gruppe java (die /usr/bin/java bereitstellt): /usr/lib/jvm/java-8-oracle/jre/bin/java

De esto tienes / usr / lib / jvm / java-8-oracle / as java home. Ahora puede exportarlo a la variable JAVA_HOME

export JAVA_HOME=/usr/lib/jvm/java-8-oracle/

Ahora echo $ JAVA_HOME muéstralo

vimal krishna
fuente
1

Lo uso en Ubuntu LTS (14.04 / 16.04):

[ -L /etc/alternatives/java ] && 
  export JAVA_HOME="$(readlink -f /etc/alternatives/java | sed -e 's/\/jre\/bin\/java$//')"
ggrandes
fuente
1

Establecer variables de entorno Java

El PPA también contiene un paquete para configurar automáticamente las variables de entorno Java, solo ejecute el comando:

sudo apt install oracle-java8-set-default

De este artículo: Instale Oracle Java 8/9 en Ubuntu 16.04, Linux Mint 18

usuario2682025
fuente
0

Para Java 9 y posterior:

Esta respuesta https://askubuntu.com/a/657468/963 usa el motor de JavaScript Nashorn adjunto Nashorn para imprimir la java.homepropiedad del sistema. Nashorn está en desuso, por lo que una alternativa es usarlo jshellintroducido en Java 9.

echo 'System.out.println(java.lang.System.getProperty("java.home"));' | jshell  -

que en mi sistema Ubuntu 18.10 se imprime:

/usr/lib/jvm/java-11-openjdk-amd64
Thorbjørn Ravn Andersen
fuente