Cómo configurar JAVA_HOME en Linux para todos los usuarios

Soy nuevo en el sistema Linux y parece que hay demasiadas carpetas Java.

java -version me da:

  • versión de Java “1.7.0_55”
  • OpenJDK Runtime Environment (rhel-2.4.7.1.el6_5-x86_64 u55-b13)
  • OpenJDK 64-Bit Server VM (comstackción 24.51-b03, modo mixto)

Cuando bash construir un proyecto Maven, recibo un error:

Error: JAVA_HOME is not defined correctly. We cannot execute /usr/java/jdk1.7.0_05/bin/java 

¿Podrían decirme qué archivos necesito modificar para el usuario root y no root y dónde se encuentra exactamente java?

  1. find /usr/lib/jvm/java-1.xx-openjdk
  2. vim /etc/profile

    Anteponga sudo si inició sesión como usuario no privilegiado, es decir. sudo vim

  3. Presione ‘i’ para entrar en modo insertar
  4. añadir:

     export JAVA_HOME="path that you found" export PATH=$JAVA_HOME/bin:$PATH 
  5. cierre sesión e inicie sesión nuevamente, reinicie o use source /etc/profile para aplicar cambios inmediatamente en su shell actual

Para todos los usuarios, recomendaría colocar la siguiente línea en /etc/profile

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

Esto se actualizará dinámicamente y funciona bien con el sistema de alternativas . Tenga en cuenta que la actualización solo tendrá lugar en un nuevo shell de inicio de sesión.

Puede usar / etc / profile o mejor un archivo como /etc/profile.d/jdk_home.sh

 export JAVA_HOME=/usr/java/jdk1.7.0_05/ 

Debe recordar que este archivo solo está cargado con nuevos shells de inicio de sesión. Por lo tanto, después de bash -l o una nueva sesión de gnome, y que no cambia con las nuevas versiones de Java.

Ninguna de las otras respuestas me estaba “pegando” en RHEL 7, incluso estableciendo JAVA_HOME y PATH directamente en /etc/profile o ~/.bash_profile no funcionaría. Cada vez que intenté verificar si JAVA_HOME estaba configurado, quedaría en blanco:

 $ echo $JAVA_HOME (<-- no output) 

Lo que tenía que hacer era configurar un script en /etc/profile.d/jdk_home.sh :

 #!/bin/sh export JAVA_HOME=/opt/ibm/java-x86_64-60/ export PATH=$JAVA_HOME/bin:$PATH 

Inicialmente descuidé la primera línea (la #!/bin/sh ), y no funcionará sin ella.

Ahora funciona:

 $ echo $JAVA_HOME /opt/ibm/java-x86_64-60/ 

Es muy fácil establecer la ruta en Linux. Haz lo siguiente:

Paso 1 Abra el terminal y escriba sudo gedit .bashrc

Paso-2 Le preguntará su contraseña. Después de escribir la contraseña, se abrirá el archivo bash. Luego ve al final y escribe debajo

paso 3

  export JAVA_HOME= /usr/lib/jvm/java-8-openjdk-amd64/ export PATH="$PATH:$JAVA_HOME/bin" 

paso-4 A continuación, guarde el archivo y salga del archivo

Arriba es para un solo usuario. Para todos los usuarios, debes seguir los pasos a continuación

Step-1 gedit /etc/profile

Paso 2 de export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/

Step-3 export PATH=$PATH:$JAVA_HOME/bin

Espero que esto ayude. ¡Gracias!

Haciendo lo que Oracle hace (como ex Empleado de Sun no me acostumbro a eso)

ln -s latestJavaRelease / usr / java / default
Donde latestJavaRelease es la versión que quieres usar

luego exportar JAVA_HOME = / usr / java / default

Copie la ruta del archivo bin que instaló

“TU CAMINO”

abra la terminal y edite el archivo de entorno escribiendo el siguiente comando

“sudo nano / etc / environment”

En este archivo, agregue la siguiente línea (reemplazando YOUR_PATH por la ruta recién copiada):

JAVA_HOME = “YOUR_PATH”

Eso debería ser suficiente para establecer la variable de entorno. Ahora recarga este archivo:

“fuente / etc / entorno”

ahora pruébelo ejecutando:

echo $ JAVA_HOME

En Linux agrego esta línea a mi ~ / .profile:

 export JAVA_HOME=$(readlink -ze /usr/bin/javac | xargs -0 dirname -z | xargs -0 dirname) 

La respuesta dada es que las publicaciones anteriores son válidas. Pero ninguna respuesta está completa con respecto a:

  1. No se recomienda cambiar el / etc / profile simplemente por el motivo (como se indica en / etc / profile):
  • NO es una buena idea cambiar este archivo a menos que sepa lo que está haciendo. Es mucho mejor crear un script de shell custom.sh en /etc/profile.d/ para realizar cambios personalizados en su entorno, ya que esto evitará la necesidad de fusionarse en futuras actualizaciones. *
  1. Como se dijo anteriormente, cree el archivo /etc/profile.d/custom.sh para cambios personalizados.

  2. Ahora, para mantenerse siempre actualizado con las versiones más nuevas de Java que se está instalando, nunca coloque la ruta absoluta, en su lugar use:

# si haces jdk como casa java

exportar JAVA_HOME = $ (readlink -f / usr / bin / javac | sed “s: / bin / javac ::”)

O

# si haces jre como java home

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

  1. ¡Y recuerda tener #! / bin / bash en el archivo custom.sh

Mientras estamos listos para configurar JAVA_HOME, permítanme compartir algunos beneficios de configurar JAVA_HOME o cualquier otra variable de entorno:

1) Es fácil actualizar JDK sin afectar el inicio de la aplicación y el archivo de configuración que apunta a JAVA_HOME. solo necesita descargar una nueva versión y asegurarse de que su JAVA_HOME apunte a la nueva versión de Java. Este es el mejor beneficio de usar variables de entorno o enlaces.

2) La variable JAVA_HOME es breve y concisa en lugar de la ruta completa al directorio de instalación de JDK.

3) La variable JAVA_HOME es la independencia de la plataforma, es decir, si su script de inicio utiliza JAVA_HOME, entonces puede ejecutarse en Windows y UNIX sin ninguna modificación, solo necesita establecer JAVA_HOME en el sistema operativo respectivo.

Leer más: http://javarevisited.blogspot.com/2012/02/how-to-set-javahome-environment-in.html#ixzz4BWmaYIjH

Publicar como respuesta, ya que no tengo el privilegio de comentar.

Punto a destacar : siga la respuesta aceptada publicada por “That Dave Guy”.

Después de establecer las variables, asegúrese de establecer los permisos apropiados en el directorio java donde está instalado.

 chmod -R 755 /usr/java 

Probablemente sea una buena idea obtener el perfil que edite para ahorrar el tener que usar un inicio de sesión nuevo.

cualquiera: fuente / etc / or. / etc /

¿Dónde está el perfil que editaste?

Este es un script muy simple para resolver el problema

 export JAVA_HOME_BIN=`which java` export JAVA_HOME_DIR=`dirname $JAVA_HOME_BIN` export JAVA_HOME=`dirname $JAVA_HOME_DIR` 

Y para probar:

 echo $JAVA_HOME 

Yo uso la línea:

 export JAVA_HOME=$(readlink -f $(dirname $(readlink -f $(which java) ))/../) 

a mi ~ / .profile por lo que utiliza la base del directorio java predeterminado en el momento del inicio de sesión. Esto es para bash.