web-dev-qa-db-fra.com

Comment définir Java_HOME sous Linux pour tous les utilisateurs

Je suis nouveau sur le système Linux et il semble y avoir trop de dossiers Java. 

Java -version me donne:

  • Version Java "1.7.0_55"
  • Environnement d'exécution OpenJDK (rhel-2.4.7.1.el6_5-x86_64 u55-b13)
  • Serveur OpenJDK 64 bits VM (version 24.51-b03, mode mixte)

Quand j'essaye de construire un projet Maven, j'obtiens une erreur:

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

Pourriez-vous s'il vous plaît me dire quels fichiers je dois modifier pour l'utilisateur root ainsi que non-root et où se trouve Java?

113
Amruta
  1. find /usr/lib/jvm/Java-1.x.x-openjdk
  2. vim /etc/profile

    Ajoutez Sudo si vous êtes connecté en tant qu’utilisateur non privilégié, c.-à-d. Sudo vim

  3. Appuyez sur 'i' pour passer en mode insertion
  4. ajouter:

    export Java_HOME="path that you found"
    
    export PATH=$Java_HOME/bin:$PATH
    
  5. déconnectez-vous et reconnectez-vous, redémarrez ou utilisez source /etc/profile pour appliquer immédiatement les modifications dans votre shell actuel.
234
That Dave Guy

Pour tous les utilisateurs, je vous recommande de placer la ligne suivante dans /etc/profile

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

Ceci se mettra à jour dynamiquement et fonctionnera bien avec alternatives system Notez cependant que la mise à jour ne se fera que dans un nouveau shell de connexion.

75
Eero Aaltonen

Vous pouvez utiliser/etc/profile ou mieux un fichier tel que /etc/profile.d/jdk_home.sh

export Java_HOME=/usr/Java/jdk1.7.0_05/

Vous devez vous rappeler que ce fichier est chargé uniquement avec les nouveaux shells de login. Donc après bash -l ou une nouvelle session gnome et qu'il ne change pas avec les nouvelles versions de Java.

28
flob

Aucune des autres réponses ne "collait" pour moi dans RHEL 7, même définir Java_HOME et PATH directement dans /etc/profile ou ~/.bash_profile ne fonctionnerait pas. Chaque fois que j'essayais de vérifier si Java_HOME était défini, il apparaissait vide:

$ echo $Java_HOME
    (<-- no output)

Ce que je devais faire était de mettre en place un script in /etc/profile.d/jdk_home.sh:

#!/bin/sh
export Java_HOME=/opt/ibm/Java-x86_64-60/
export PATH=$Java_HOME/bin:$PATH

Au début, j'avais négligé la première ligne (le #!/bin/sh), et cela ne fonctionnerait pas sans elle.

Maintenant ça marche:

$ echo $Java_HOME
/opt/ibm/Java-x86_64-60/
22
Kyle Falconer

Il est très facile de définir un chemin sous Linux. Faites comme suit:

Étape 1Ouvrez le terminal et tapez Sudo gedit .bashrc

Step-2Il vous demandera votre mot de passe. Après avoir tapé mot de passe, le fichier bash s’ouvrira. Ensuite, allez à la fin et tapez ci-dessous 

étape 3 

      export Java_HOME= /usr/lib/jvm/Java-8-openjdk-AMD64/

      export  PATH="$PATH:$Java_HOME/bin"

step-4Puis enregistrez le fichier et quittez le fichier

Ci-dessus est pour un utilisateur unique. Pour tous les utilisateurs, vous devez suivre les étapes ci-dessous

Étape 1 gedit /etc/profile

Étape 2 export Java_HOME=/usr/lib/jvm/Java-8-openjdk-AMD64/

Étape 3 export PATH=$PATH:$Java_HOME/bin

J'espère que cela t'aides. Merci!

9
PyDevSRS

Faire ce que fait Oracle (en tant qu'ancien employé de Sun, je ne peux pas m'y habituer)

ln -s latestJavaRelease/usr/Java/default
Où latestJavaRelease est la version que vous souhaitez utiliser

puis exportez Java_HOME =/usr/Java/default

5
Steve S

La réponse est donnée messages précédents est valide. Mais aucune réponse n’est complète en ce qui concerne: 

  1. Changer le fichier/etc/profile n’est pas recommandé simplement pour cette raison (comme indiqué dans/etc/profile):
  • Ce n'est pas une bonne idée de changer ce fichier à moins que vous ne sachiez ce que vous faites. Il est bien mieux de créer un script shell custom.sh dans /etc/profile.d/ pour apporter des modifications personnalisées à votre environnement, comme ceci évitera la nécessité de fusionner dans les futures mises à jour. *
  1. Comme indiqué ci-dessus, créez le fichier /etc/profile.d/custom.sh pour les modifications personnalisées.

  2. Maintenant, pour toujours rester à jour avec les nouvelles versions de Java en cours d'installation, ne mettez jamais le chemin absolu, utilisez plutôt:

#si faisant de jdk Java home

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

OR

#si faisant jre comme maison java

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

  1. Et rappelez-vous d'avoir#!/bin/bashsur le fichier custom.sh
3
alok ailawadi

Copiez le chemin du fichier bin que vous avez installé

"TON CHEMIN"

ouvrez le terminal et éditez le fichier d'environnement en tapant la commande suivante,

"Sudo nano/etc/environment"

Dans ce fichier, ajoutez la ligne suivante (en remplaçant YOUR_PATH par le chemin simplement copié):

Java_HOME = "YOUR_PATH"

Cela devrait être suffisant pour définir la variable d'environnement. Rechargez maintenant ce fichier:

"source/etc/environment"

testez-le maintenant en exécutant:

echo $ Java_HOME

2
VirangaMahesh

Sous Linux, j'ajoute cette ligne à mon ~/.profile:

export Java_HOME=$(readlink -ze /usr/bin/javac | xargs -0 dirname -z | xargs -0 dirname)
2
Emanuel Oliveira

En tant que réponse, je n'ai pas le privilège de commenter.

Point à noter : suivez la réponse acceptée publiée par "That Dave Guy".

Après avoir défini les variables, assurez-vous de définir les autorisations appropriées dans le répertoire Java dans lequel il est installé.

chmod -R 755 /usr/Java
1
Van Peer

Pendant que nous configurons Java_HOME, permettez-moi de partager certains avantages de la définition de Java_HOME ou de toute autre variable d'environnement:

1) Il est facile de mettre à niveau JDK sans affecter le démarrage de votre application et le fichier de configuration pointant vers Java_HOME. il vous suffit de télécharger la nouvelle version et de vous assurer que votre Java_HOME pointe vers la nouvelle version de Java. C'est le meilleur avantage d'utiliser une variable d'environnement ou des liens.

2) La variable Java_HOME est courte et concise au lieu du chemin d'accès complet au répertoire d'installation JDK.

3) La variable Java_HOME est l’indépendance de la plate-forme, c’est-à-dire que si votre script de démarrage utilise Java_HOME, il peut fonctionner sous Windows et UNIX sans aucune modification, il vous suffit de définir Java_HOME sur le système d’exploitation correspondant.

En savoir plus: http://javarevisited.blogspot.com/2012/02/how-to-set-javahome-environment-in.html#ixzz4BWmaYIjH

1
guest

Étape 1 - vérifiez la version Java actuelle par "echo $ Java_HOME"

Étape 2 - vim/etc/profile

Étape 3 - À la fin du fichier, vous trouverez Export Java_HOME, nous devons fournir le nouveau chemin ici, assurez-vous qu’il n’est pas relatif.

Étape 4 - Sauvegarder et quitter: wq

Étape 5 - "source/etc/profile /", cela exécuterait le changement

Étape 6 - Faites à nouveau un echo $ Java_HOME - le changement aurait été pris en compte.

0
swapnil shashank

Ajoutez simplement cette commande à votre fichier docker

RUN echo "Java_HOME=$(readlink -f /usr/bin/Java | sed "s:bin/Java::")" | tee -a /etc/profile && source /etc/profile && echo $Java_HOME
0
Dashrath Mundkar

Ceci est un script très simple pour résoudre le problème

export Java_HOME_BIN=`which Java`
export Java_HOME_DIR=`dirname $Java_HOME_BIN`
export Java_HOME=`dirname $Java_HOME_DIR`

Et pour tester:

echo $Java_HOME
0
Dylan Breugne

Probablement une bonne idée de rechercher le profil que vous modifiez pour éviter de devoir utiliser un nouvel identifiant.

soit: source /etc/or./etc /

Où est le profil que vous avez édité.

0
Bryant Bernstein