Question Comment définir JAVA_HOME pour Java?


J'ai installé une version de Java. Comment pouvons-nous définir le $JAVA_HOME variable d'environnement correctement?


249
2017-08-13 22:31


origine




Réponses:


Vous pouvez définir votre JAVA_HOME dans /etc/profile comme Petronilla Escarabajo suggère. Mais l'emplacement préféré pour JAVA_HOME ou toute variable système est /etc/environment.

Ouvrir /etc/environment dans n'importe quel éditeur de texte comme nano ou gedit et ajoutez la ligne suivante:

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

(le chemin java pourrait être différent)

Utilisation source pour charger les variables, en exécutant cette commande:

source /etc/environment

Ensuite, vérifiez la variable en exécutant cette commande:

echo $JAVA_HOME

Mettre à jour

Habituellement, la plupart des systèmes Linux utilisent / etc / environment par défaut. Si votre système ne le fait pas, ajoutez la ligne suivante à ~/.bashrc (Merci @pje)

source /etc/environment

345
2017-08-14 02:17



J'obtiens: JDK Obligatoire: 'tools.jar' ne semble pas se trouver dans le classpath IDEA. Assurez-vous que JAVA_HOME pointe vers JDK plutôt que JRE. - anon58192932
@advocate - Vous devriez probablement poster votre propre question pour cela. Mais l'indice est dans le message; vous devez indiquer un JDK et non un JRE. - David Edwards
Quand j'ai essayé d'exécuter Android Studio (qui a pour base IntelliJ IDEA), j'ai eu un message d'erreur très similaire à celui de @ advocate: "'tools.jar' ne semble pas être dans le classpath d'Android Studio." Après avoir beaucoup bidouillé avec JAVA_HOME sans succès, j'ai décidé de regarder studio.sh, le script shell qui démarre Android Studio. Je suppose que JDK_HOME a la même valeur que JAVA_HOME et le tour est joué! Il installé sans grands problèmes. - Hilton Fernandes
Pour ceux qui font du développement logiciel, ne mettez pas votre JAVA_HOME dans / etc / environment à moins que vous ne vouliez redémarrer chaque fois que vous changez de version JDK. - HDave
Comme d'autres l'ont fait remarquer, cela ne colle pas entre les sessions de terminal. Ce que j'ai fait pour y remédier vient d'ajouter la ligne source /etc/environment en haut de mon fichier de configuration bash ~/.bashrc afin qu'il charge tous mes paramètres d'environnement au démarrage. Travailler pour moi jusqu'à présent. - pje


Mettre en place JAVA_HOME variable d'environnement, procédez comme suit:

  1. Lancer le terminal en appuyant sur Ctrl+Alt+T sur votre clavier.
  2. Entrez la commande suivante:
    $ gksudo gedit /etc/environment
  3. Selon l'endroit où vous avez installé votre Java, vous devrez fournir le chemin complet. Pour cet exemple, j'ai installé Oracle JDK 7 dans le /usr/lib/jvm/java-7-oracle annuaire.
    Faites défiler jusqu'à la fin du fichier et entrez les informations suivantes:
    JAVA_HOME=/usr/lib/jvm/java-7-oracle
    export JAVA_HOME
  4. Enregistrez votre fichier et quittez gedit.
  5. Enfin, rechargez le système PATH avec la commande suivante:
    $ . /etc/environment

La méthode ci-dessus vous évitera d'avoir à exécuter les commandes chaque fois que vous vous connectez à votre ordinateur.


67
2017-08-13 23:01



Comment fait / etc / environment fonctionne? - Sudip Bhandari
Est-ce que l'ajout de la export commande nécessaire dans le /etc/environment? - pkaramol
@pkaramol J'ai dû ajouter export JAVA_HOME sur 16.04LTS pour le charger au démarrage. - adeen-s
@ adeen-s Vous avez ajouté export à une ligne dans /etc/environment et ça a aidé? Ce fichier contient des définitions de variables analysées comme =-delimited paires nom-valeur; son contenu n'est pas exécuté en tant que commandes. (Voir man pam_env.) Donc, sauf si vous êtes séparément traiter le fichier comme s'il s'agissait d'un script (comme en passant /etc/environment à bash ./source builtin), je ne m'attendrais pas à ce que cela fonctionne. - Eliah Kagan


Si vous ne connaissez pas le chemin et que openJDK est installé, vous pouvez taper update-alternatives --config java et vous devriez trouver le chemin. Pour définir la variable que vous pouvez écrire JAVA_HOME=<PATH> suivi par export JAVA_HOME. Notez qu'il n'y a pas d'espace lors de la déclaration de la variable. Pour vérifier si la variable est stockée, tapez simplement echo $JAVA_HOME vérifier.


30
2017-08-18 21:29



Cela semble être statique. Si je supprime openjdk-7 et installe openjdk-9, JAVA_HOME ne pointera-t-il pas au bon endroit? Comment peut-il être dynamique? - DavidJ
En le modifiant manuellement. Encore une fois, vous êtes la façon dont cela devient dynamique .... - HDave
Ce que @HDave signifie signifie que dans certains cas, vous pouvez vouloir que JAVA_HOME pointe vers une version spécifique de Java, de sorte que faire la mise à jour de JAVA_HOME dynamique peut ne pas être ce que vous voulez. - Maciej
J'aime cette réponse. J'ai testé avec écho et voir mon chemin. Cependant, je suis confus pourquoi je reçois encore Java_home la variable d'environnement n'est pas définie lorsque je lance mvn -version - Winnemucca
J'ai écrit cette réponse quand j'étais plus ignorant. Définir la variable comme décrit n'affectera que votre session de terminal actuelle et ne sera pas persistante. La manière correcte est de courir update-alternatives --install <link> <name> <target> <priority>  par exemple: update-alternatives --install /usr/bin/java java /usr/lib/jvm/default-runtime/bin/java 1 - Erro