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.
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.
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.
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)
.source .bash_profile
- charge et exécute votre bash_profile mis à jourecho $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.)
h - Déplace le curseur d'un caractère vers la gauche
l - Déplace le curseur d'un caractère vers la droite
k - Déplace le curseur d'une ligne vers le haut
j - Déplace le curseur d'une ligne vers le bas
nG ou: n - Le curseur va sur la ligne (n) spécifiée
(ex. 10G passe à la ligne 10)
$ - Déplace le curseur à la fin de la ligne courante
w - Transférer un mot
b - En arrière d'un mot
Commandes de sortie
: wq - Écrire un fichier sur le disque et quitter l'éditeur
: q! - Quitter (pas d'avertissement)
: q - Quitter (un avertissement est imprimé si un fichier modifié n'a pas été enregistré)
[~ # ~] zz [~ # ~] - Enregistrer l'espace de travail et quitter l'éditeur (identique à: wq)
--- (Commandes de l'éditeur VIM - liste complète
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
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. :(
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
il suffit de taper la commande suivante dans le terminalSudo 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.
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>