Java est un package facultatif sur les dernières versions de macOS.
Cependant, une fois installé, il apparaît que la variable d'environnement Java_HOME est n'est pas définie correctement .
Avec le package facultatif Java ou JDK Oracle installé, ajouter l'une des lignes suivantes à votre fichier ~/.bash_profile définira la variable d'environnement en conséquence.
export Java_HOME="$(/usr/libexec/Java_home -v 1.6)"
or
export Java_HOME="$(/usr/libexec/Java_home -v 1.7)"
or
export Java_HOME="$(/usr/libexec/Java_home -v 1.8)"
Mise à jour: ajout du drapeau -v basé sur Jilles van Gurp _ réponse .
/usr/libexec/Java_home
n'est pas un répertoire mais un exécutable. Il génère le Java_HOME actuellement configuré et ne le change pas réellement. C’est à cela que sert l’application Préférences Java. Dans mon cas, elle semble cassée et ne change pas correctement la machine virtuelle Java. Il répertorie la JVM 1.7 mais je peux basculer/désélectionner et glisser-déposer tout ce que je veux là-bas sans modifier réellement le résultat de /usr/libexec/Java_home
.
Même après avoir installé la version 1.7.0 u6 d’Oracle sur Lion et l’avoir définie comme valeur par défaut dans les préférences, l’application Apple 1.6 Java Home restait renvoyée. Le seul correctif qui fonctionne réellement pour moi est la configuration manuelle de Java_HOME:
export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home/
Au moins de cette façon, lorsqu'il sera exécuté à partir de la ligne de commande, il utilisera 1.7. /usr/libexec/Java_home
insiste toujours sur 1.6.
Update: Comprendre Java à partir de la ligne de commande sous OSX explique mieux comment cela fonctionne.
export Java_HOME=`/usr/libexec/Java_home -v 1.7`
est le moyen de le faire. Notez que la mise à jour à 1.8 fonctionne très bien.
Pour moi, Mountain Lion 10.8.2, la solution la plus votée ne fonctionne pas ... J'ai installé jdk 1.7 via Oracle et maven à partir de homebrew.
Ma solution vient du fichier hadoop-env.sh de hadoop que j’ai installé depuis homebrew .. ... J’ajoute la phrase ci-dessous dans ~/.bash_profile et cela fonctionne.
export Java_HOME="$(/usr/libexec/Java_home)"
Cette solution fonctionne également pour OS X Yosemite avec Java 1.8 installé à partir d'Oracle.
Aucune des réponses ci-dessus ne m'a aidé. Je suppose que toutes les réponses sont pour les anciens OS X
Pour OS X Yosemite 10.10, suivez ces étapes
Utilisez votre éditeur de texte préféré pour ouvrir: ~/.bash_profile
//This command will open the file using vim
$ vim ~/.bash_profile
Ajoutez la ligne suivante dans le fichier et enregistrez-le (: suivi de "x" pour vim):
export Java_HOME=$(/usr/libexec/Java_home)
Ensuite, dans le terminal, tapez les deux commandes suivantes pour voir la sortie:
$ source ~/.bash_profile
$ echo $Java_HOME
À la deuxième ligne, vous mettez à jour le contenu du fichier .bash_profile
.
Ce qui précède n'a pas fonctionné pour moi avec les outils EC2 d'Amazon, car il attend bin/Java
etc. sous Java_HOME
. /System/Library/Frameworks/JavaVM.framework/Home
a fonctionné.
Pour OS X, vous pouvez faire:
export Java_HOME=`/System/Library/Frameworks/JavaVM.framework/Versions/Current/commands/Java_home`
Sur Mac OS X Lion, pour que visualgc fonctionne, j’ai utilisé:
export Java_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
Ce qui suit a fonctionné pour moi. J'utilise ZSH sur OSX Yosemite avec Java 8 installé.
La commande suivante /usr/libexec/Java_home
émet le chemin d'accès à la maison JDK:
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
Dans votre ~/.zshrc
,
export Java_HOME = "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home"
Les machines JVM Oracle plus récentes telles que 1.7.0_21-b12 semblent s'installer ici:
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Une meilleure façon (plus évolutive) consiste à utiliser les éléments suivants:
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
Cela devrait également fonctionner avec AWS puisqu'il y a bin
sous Home.
Mon approche est:
.bashrc
export Java6_HOME=`/usr/libexec/Java_home -v 1.6`
export Java7_HOME=`/usr/libexec/Java_home -v 1.7`
export Java_HOME=$Java6_HOME
# -- optional
# export PATH=$Java_HOME/bin:$PATH
Cela rend très facile de basculer entre J6 et J7
pour macOS Mojave 10.14.1 et Java 11.0.1 , je règle le profil sur
export Java_HOME=$(/usr/libexec/Java_home)
touchez ce terminal pour confirmer:
$Java_HOME/bin/Java -version
Java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)
Pour Mac OS X 10.9, j'ai installé la dernière version de JRE d'Oracle, puis réinitialisé Java_HOME sur /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home.
Je suis sûr qu'il existe un meilleur moyen mais m'a permis de démarrer.
hughsmac: ~ hbrien $ echo $ Java_HOME /Bibliothèque/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Sommaire/Accueil
OSX Yosemite, ZSH et Java SE Runtime Environment 8, je devais:
$ Sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands /System/Library/Frameworks/JavaVM.framework/Versions/Current/bin
et dans ~/.zshrc, remplacez Java_HOME par export Java_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/Current"
J'ai eu le même problème après la mise à niveau de Mac OS et les actions suivantes ont fonctionné pour moi:
cmd> vi ~/.bash_profile
Ajoutez/mettez à jour la ligne pour Java_HOME: Export Java_HOME = "/ Bibliothèque/Java/JavaVirtualMachines/jdk1.7.0_15.jdk/Contenu/Accueil"
cmd> source ~/.bash_profile ou ouvrir un nouveau terminal
Je pense que la version de jdk peut différer, utilisez donc simplement la version que vous avez sous/Bibliothèque/Java/JavaVirtualMachines /
Si vous avez besoin de plusieurs versions de JDK sous Mac OS X (Yosemite), il peut être utile d’ajouter des scripts pour la commutation automatique entre elles.
Ce que vous faites est d’éditer votre ~/.bash_profile et d’ajouter ce qui suit:
function setjdk() {
if [ $# -ne 0 ]; then
removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
if [ -n "${Java_HOME+x}" ]; then
removeFromPath $Java_HOME
fi
export Java_HOME=`/usr/libexec/Java_home -v $@`
export PATH=$Java_HOME/bin:$PATH
fi
}
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
setjdk 1.7
Le script consiste à supprimer d’abord les autres versions de JDK du chemin afin qu’elles ne perturbent pas notre nouvelle version de JDK. Ensuite, il utilise intelligemment / usr/libexec/Java_home, une commande répertoriant les versions de JDK installées. L'argument -v indique à Java_home de renvoyer le chemin du JDK avec la version fournie, par exemple 1.7. Nous mettons également à jour le chemin pour qu'il pointe vers le répertoire bin du nouveau répertoire Java_HOME. A la fin, nous pouvons simplement exécuter la fonction en utilisant
setjdk 1.7
qui sélectionne la dernière version de JDK installée de la branche 1.7. Pour sélectionner une version spécifique, vous pouvez simplement exécuter
setjdk 1.7.0_51
au lieu. Exécutez / usr/libexec/Java_home -V pour obtenir plus de détails sur le choix des versions.
P.S. N'oubliez pas de source ~/.bash_profile après l'avoir sauvegardé.
Je devais définir explicitement le chemin exact sur mon Macbook Air.
Étapes suivies:
echo $Java_HOME
(s'il est défini, le chemin sera affiché); sinon, essayez de le rechercher en utilisant Sudo find /usr/ -name *jdk
Sudo nano ~/.bash_profile
export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
echo $Java_HOME
J'utilise MACOS MOJAVE - 10.14.2 (18C54) sur un Macbook Air avec Java 8
Pour Mac Yosemite,
JDK 1.7.0_xx utilise
$ ls -ltar /usr/bin/Java
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/Java
Java_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_xx.jdk/Contents/Home
Il suffit de définir Java_home de la version 1.8 jdk dans le fichier netbeans.conf
:
/Applications/NetBeans/NetBeans 8.2.app/Contents/Resources/NetBeans/etc/netbeans.conf
ligne de commentaire:
netbeans_jdkhome="path/to/jdk"
et définir le chemin de votre 1.8 jdk, dans mon cas:
netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home"
Cette approche vous permet d’avoir plusieurs versions de jdk sur mac os
J'utilise Fish Shell sur High Sierra 10.13.4 et j'ai installé Java via Brew.
Ce n'est pas automatiquement configuré, donc pour le configurer correctement sur mon système, je lance:
set -U Java_HOME (/usr/libexec/Java_home)
Pour les utilisateurs du terminal Fish sur Mac (je pense que cela est également disponible sous Linux), cela devrait fonctionner:
set -Ux Java_8 (/usr/libexec/Java_home --version 1.8)
set -Ux Java_12 (/usr/libexec/Java_home --version 12)
set -Ux Java_HOME $Java_8 //or whichever version you want as default