¿Cómo configurar JAVA_HOME para Java?


303

He instalado una versión de Java. ¿Cómo podemos establecer la $JAVA_HOMEvariable de entorno correctamente?

Respuestas:


422

Puede configurar su JAVA_HOMEen /etc/profilecomo Petronila Escarabajo sugiere. Pero la ubicación preferida para JAVA_HOMEo cualquier variable del sistema es /etc/environment.

Abra /etc/environmenten cualquier editor de texto como nanoo gedity agregue la siguiente línea:

JAVA_HOME="/usr/lib/jvm/open-jdk"

(el camino de Java podría ser diferente)

Use sourcepara cargar las variables, ejecutando este comando:

source /etc/environment

Luego verifique la variable, ejecutando este comando:

echo $JAVA_HOME

Actualizar

Por lo general, la mayoría de los sistemas Linux fuente / etc / environment por defecto. Si su sistema no lo hace, agregue la siguiente línea a ~/.bashrc(Gracias @pje)

source /etc/environment

2
Cuando intenté ejecutar Android Studio (que tiene IntelliJ IDEA como base), recibí un mensaje de error muy similar al de @ advocate: "'tools.jar' parece no estar en Android Studio classpath". Después de jugar mucho con JAVA_HOME sin éxito, decidí echar un vistazo a studio.sh, el shellscript que inicia Android Studio. Como una conjetura, configuré JDK_HOME con el mismo valor esperado para JAVA_HOME, ¡y listo! Se instaló sin grandes problemas.
— Hilton Fernandes

3
Para aquellos que realizan desarrollo de software, no coloque su JAVA_HOME en / etc / environment a menos que desee reiniciar cada vez que cambie las versiones de JDK.
— HDave

2
Esta es una solución temporal, como otros señalaron. Nadie querría ejecutar código fuente cada vez que reinicie su bash.
— yuranos87

66
Como otros han señalado, esto no se pega entre las sesiones terminales. Lo que hice para abordar esto es agregar la línea source /etc/environmenten la parte superior de mi archivo de configuración bash ~/.bashrcpara que cargue todas las configuraciones de mi entorno al inicio. Trabajando para mí hasta ahora.
— pje

2
@sedulam He actualizado la respuesta
— Manula Waidyanatha

79

Para establecer JAVA_HOMEla variable de entorno, haga lo siguiente:

  1. Inicie Terminal presionando Ctrl+ Alt+ Ten su teclado.
  2. Ingrese el siguiente comando:
    $gksudo gedit /etc/environment
  3. Dependiendo de dónde instaló su Java, deberá proporcionar la ruta completa. Para este ejemplo, instalé Oracle JDK 7 en el /usr/lib/jvm/java-7-oracledirectorio.
    Desplácese hasta el final del archivo e ingrese lo siguiente:
    JAVA_HOME=/usr/lib/jvm/java-7-oracle
    export JAVA_HOME
  4. Guarde su archivo y salga de gedit .
  5. Por último, vuelva a cargar la RUTA del sistema con el siguiente comando:
    $. /etc/environment

El método anterior le ahorrará la molestia de tener que ejecutar los comandos cada vez que inicie sesión en su computadora.


55
Cómo . / etc / trabajo ambiental?
— Sudip Bhandari

1
¿Es necesario agregar el exportcomando en el /etc/environment?
— pkaramol

@pkaramol Tuve que agregar la exportación JAVA_HOME en 16.04LTS para que se cargue al inicio.
— adeen-s

3
@ adeen-s ¿Agregaste exporta una línea /etc/environmenty ayudó? Ese archivo contiene definiciones variables analizadas como =pares nombre-valor delimitados; su contenido no se ejecuta como comandos. (Ver man pam_env.) Entonces, a menos que esté tratando el archivo por separado como si fuera un script (como al pasar /etc/environmenta bash ./ sourcebuiltin), no esperaría que eso funcione.
— Eliah Kagan

> Cómo lo hace. / etc / trabajo ambiental? -. (punto) carga comandos de un archivo askubuntu.com/a/232938/189965
— Roman Bekkiev

37

Si no conoce la ruta y solo tiene instalado openJDK, puede escribir update-alternatives --config javay debe encontrar la ruta. Para establecer la variable puede escribir JAVA_HOME=<PATH>seguido de export JAVA_HOME. Observe que no hay espacio al declarar la variable. Para verificar si la variable está almacenada, simplemente escriba echo $JAVA_HOMEpara verificar.


Esto parece que sería estático. Si elimino openjdk-7 e instalo openjdk-9, ¿JAVA_HOME no señalará el lugar equivocado? ¿Cómo se puede hacer dinámico?
— DavidJ

3
Al cambiarlo manualmente. Una vez más, USTED es la forma en que se vuelve dinámico ...
— HDave

Lo que @HDave significa es que, en ciertos casos, es posible que desee que JAVA_HOME apunte a una versión específica de Java, por lo que hacer que la actualización de JAVA_HOME Dynamic no sea lo que desea.
— Maciej

Me gusta esta respuesta. Probé con eco y vi mi camino. Sin embargo, estoy confundido por qué sigo obteniendo la variable de entorno JAVA_HOME no se establece cuando ejecuto mvn -version
— Winnemucca

1
Escribí esta respuesta cuando era más ignorante. Establecer la variable como se describe solo afectará su sesión de terminal actual y no se mantendrá. La forma correcta es ejecutar, update-alternatives --install <link> <name> <target> <priority> por ejemplo:update-alternatives --install /usr/bin/java java /usr/lib/jvm/default-runtime/bin/java 1
— Erro
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.