web-dev-qa-db-fra.com

Vérification que Java_HOME est correctement défini

Assez nouveau pour Java et aussi pour Mac ... Je veux m'assurer que Java_HOME est défini pour que dans d'autres programmes je puisse utiliser son chemin. J'ai donc fait quelques recherches sur Google et voici ce que j'ai obtenu:

Si j'entre / usr/libexec/Java_home dans le terminal, j'obtiens ceci: / System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home mais si je entrez echo $ Java_HOME dans le terminal, je ne récupère rien.

Pouvez-vous me dire ce qui se passe ici?

Merci.

34
Bohn

Java_HOME n'est pas défini par défaut sur OSX. Vous pouvez résoudre ce problème en ouvrant le terminal et en exécutant ce qui suit:

echo "export Java_HOME=`/usr/libexec/Java_home`" >> ~/.profile    
. ~/.profile

Cela entraînera Java_HOME à définir au démarrage (plutôt que juste la session en cours), et l'ajouter immédiatement.

67
Steve McGuire

Vérification du chemin Java_HOME

Essayez d'exécuter source .bash_profile Avant echo $Java_HOME Dans votre répertoire racine. Cela devrait corriger le problème si vous avez correctement défini Java_HOME. Si vous n'êtes pas sûr d'être dans votre répertoire racine, tapez simplement cd ~, Appuyez sur Entrée et vous y êtes.

Root Directory

  • Explication : source charge et exécute votre bash_profile.

Si vous n'avez pas correctement défini Java_HOME, Suivre les instructions ci-dessous devrait clarifier les choses.

  • vim .bash_profile - ouvre votre bash_profile dans Vim.
    • J'ai inclus une liste de VIM dont vous aurez probablement besoin pour éditer votre .bash_profile ci-dessous.

  • export Java_HOME=$(/usr/libexec/Java_home) - crée un ENV_VAR (variable d'environnement) et définit/stocke le chemin de départ du JDK sur (/usr/libexec/Java_home).
  • Quittez vim et tapez ce qui suit sur le terminal *
  • source .bash_profile - charge et exécute votre bash_profile mis à jour
  • echo $Java_HOME - renvoie la valeur stockée dans le ENV_VAR Java_HOME, Qui est le chemin d'accès de votre installation JDK.

Commandes VIM:

Vim est un éditeur pour créer ou éditer un fichier texte. Il existe deux modes dans vim.

  • Mode commande: l'utilisateur peut se déplacer dans le fichier, supprimer du texte, etc.

  • Mode d'insertion: l'utilisateur peut insérer du texte.

Changement entre les modes:

Mode commande en mode Insertion

  • tapez la lettre appropriée pour l'action que vous souhaitez (a, A, i, I, o, O) - détails pour les lettres ci-dessous.

Mode d'insertion en mode commande

  • appuyez sur Échap (touche d'échappement)

Commandes de saisie de texte (Utilisé pour démarrer la saisie de texte)

  • a - Ajoute du texte suivant la position actuelle du curseur

  • [~ # ~] a [~ # ~] - Ajoute du texte à la fin de la ligne actuelle

  • i - Insérer du texte avant la position actuelle du curseur

  • [~ # ~] i [~ # ~] - Insère du texte au début de la ligne du curseur

  • o - Ouvre une nouvelle ligne suivant la ligne actuelle et y ajoute du texte

  • [~ # ~] o [~ # ~] - Ouvre une nouvelle ligne devant la ligne actuelle et y ajoute du texte

Commandes de déplacement du curseur (uniquement utilisé dans le mode commandes.)

Commandes de sortie

--- (Commandes de l'éditeur VIM - liste complète

osxterminalJava

11
WebEpic

La valeur vide de la commande echo signifierait que la valeur n'a pas été définie correctement comme vous vous y attendez. Vous pouvez essayer de créer/éditer ~/.profile en ajoutant quelque chose comme:

vi ~/.profile
export Java_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home  

si vous n'êtes pas encore à l'aise avec éditeur vi, vous pouvez également créer ce fichier dans votre répertoire personnel à l'aide du programme TextEdit sous Mac. et exécuter

source ~/.profile

Cela chargera définir la propriété Java_HOME. Ensuite, vous pouvez essayer d'exécuter echo $ Java_HOME pour vérifier s'il a été correctement défini comme prévu.

Vous devrez peut-être également définir la variable d'environnement PATH comme quelque chose comme:

export PATH=PATH:$Java_HOME/bin
6
Atharva

Cela n'est pas résilient aux nouvelles installations du JDK. Selon Apple: - vous ne devez pas le définir globalement - vous devez utiliser libexec

http://lists.Apple.com/archives/Java-dev/2011/May/msg00040.html

Vous pourriez penser que:

$ cat /etc/launchd.conf setenv Java_HOME /usr/libexec/Java_home

fonctionnerait - mais non, il le définit littéralement.

Mais, comme je l'ai dit, selon cela Apple Engineer, vous n'êtes pas censé le définir globalement de toute façon. :(

1
Martin Cleaver

Modifiez votre /etc/launchd.conf dans votre éditeur de texte. S'il n'existe pas, créez-le.

Ajoutez ensuite la ligne suivante au fichier: setenv Java_HOME /path/to/Java/installation

OR

il suffit de taper la commande suivante dans le terminal
Sudo echo setenv Java_HOME /path/to/Java/installation >> /etc/launchd.conf Ensuite, entrez simplement votre mot de passe lorsqu'il vous le demande.

Redémarrez maintenant votre ordinateur et les modifications auraient dû avoir lieu.

Remarque:
Je vous donne des conseils basés sur mon expérience sous Linux. Mais cela devrait également fonctionner sur MAC.

Source

1
Hashken

J'ai eu ce problème après avoir défini Java_HOME avec jenv. Vous pouvez résoudre le problème en modifiant le fichier

/Applications/Eclipse.app/Contents/Info.plist

Définissez simplement le chemin vers votre version de Java en décommentant/éditant la partie appropriée du fichier. Pour AdoptOpenJDK installé avec homebrew, cela ressemble à ceci:

<key>Eclipse</key>
<array>
    <string>-vm</string><string>/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/bin/Java</string>
    <!-- to use a specific Java version (instead of the platform's default) uncomment one of the following options,
                   or add a VM found via $/usr/libexec/Java_home -V
        <string>-vm</string><string>/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands/Java</string>
        <string>-vm</string><string>/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home/bin/Java</string>
    -->
        <string>-keyring</string>
    <string>~/.Eclipse_keyring</string>
</array>
0
swch