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.