Je suis nouveau sur le système Linux et il semble y avoir trop de dossiers Java.
Java -version me donne:
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?
find /usr/lib/jvm/Java-1.x.x-openjdk
vim /etc/profile
Ajoutez Sudo si vous êtes connecté en tant qu’utilisateur non privilégié, c.-à-d. Sudo vim
ajouter:
export Java_HOME="path that you found"
export PATH=$Java_HOME/bin:$PATH
source /etc/profile
pour appliquer immédiatement les modifications dans votre shell actuel.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.
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.
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/
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!
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
La réponse est donnée messages précédents est valide. Mais aucune réponse n’est complète en ce qui concerne:
- 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. *
Comme indiqué ci-dessus, créez le fichier /etc/profile.d/custom.sh pour les modifications personnalisées.
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 ::")
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
Sous Linux, j'ajoute cette ligne à mon ~/.profile:
export Java_HOME=$(readlink -ze /usr/bin/javac | xargs -0 dirname -z | xargs -0 dirname)
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
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
É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.
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
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
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é.