De nombreuses applications Java qui utilisent des scripts Shell pour configurer leur environnement utilisent la variable d'environnement Java_HOME
pour démarrer la version correcte de Java, localiser les JAR JRE, etc.
Sous OSX 10.6, les chemins suivants semblent être valides pour cette variable
/Library/Java/Home
/System/Library/Frameworks/JavaVM.framework/Home
/System/Library/Frameworks/JavaVM.framework/Versions/Current
Certains d'entre eux sont des liens symboliques vers le VM actuel (comme défini dans le volet Java Préférences).
Mais lequel devrait être utilisé - ou est-il acceptable d'en utiliser un?
Est-ce que Snow Leopard a toujours /usr/libexec/Java_home
? Sur 10.5, je viens de définir Java_HOME
sur le résultat de cette commande, ce qui devrait vous donner le chemin Java spécifié dans vos préférences Java. Voici un extrait de mon fichier .bashrc
, qui définit cette variable:
export Java_HOME=$(/usr/libexec/Java_home)
Je n'ai rencontré aucun problème avec cette technique.
Parfois, je dois changer la valeur de Java_HOME
pour une version antérieure de Java. Par exemple, un programme que je maintiens nécessite Java 5 32 bits sur OS X. Par conséquent, lors de l'utilisation de ce programme, je définis Java_HOME
en exécutant:
export Java_HOME=$(/usr/libexec/Java_home -v 1.5)
Pour ceux d'entre vous qui n'ont pas Java_home
sur votre chemin, ajoutez-le comme ceci.
Sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/Java_home /usr/libexec/Java_home
En outre, il est intéressant de configurer votre PATH pour refléter le JDK. Après avoir ajouté Java_HOME (ce qui peut être fait avec l'exemple cité par 'mipadi'):
export Java_HOME=$(/usr/libexec/Java_home)
Ajoutez aussi dans ~/.profile:
export PATH=${Java_HOME}/bin:$PATH
P.S.: Pour OSX, j'utilise généralement .profile dans le répertoire HOME au lieu de .bashrc
Je suis en train de MAC OS X(Sierra) 10.12.2.
Je règle Java_HOME pour qu'il fonctionne sur React Native (pour Android apps) en suivant les étapes ci-après.
Ouvrez le terminal (Commande + R, tapez Terminal, appuyez sur Entrée).
Ajoutez les lignes suivantes à ~/.bash_profile. export Java_HOME=$(/usr/libexec/Java_home)
Maintenant, lancez la commande suivante. source ~/.bash_profile
Vous pouvez vérifier la valeur exacte de Java_HOME en tapant la commande suivante. echo $Java_HOME
La valeur (sortie) renvoyée sera comme ci-dessous. /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
c'est tout.
De nos jours, Java semble être installé dans /Library/Java/JavaVirtualMachines
Je suis sur Mac OS 10.6.8
La solution la plus simple qui fonctionne pour moi est tout simplement de
$ export Java_HOME=$(/usr/libexec/Java_home)
Pour tester si cela fonctionne, mettez en
$ echo $Java_HOME
ça montre
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
vous pouvez aussi tester
$ which Java
J'ai tendance à utiliser /Library/Java/Home
. Le fonctionnement du volet Préférences doit être à jour avec votre version préférée.
Cela ne fonctionne plus dans YOSEMITE pour les applications graphiques! Comme Eclipse, ou tout ce qui a commencé avec Spotlight. (.bash_profile, launchd.conf ne fonctionne que pour les sessions de terminal.) Avant de démarrer Eclipse, ouvrez simplement une fenêtre de terminal et donnez la commande suivante:
launchctl setenv Java_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
(Avec votre chemin d'installation! Peut-être fonctionne-t-il avec $ (/ usr/libexec/Java_home) au lieu du chemin complet également.)
Consultez l'excellent article sur la solution permanente ici: La définition de variables d'environnement via launchd.conf ne fonctionne plus sous OS X Yosemite/El Capitan/macOS Sierra?
Ignorer la configuration du terminal depuis que vous avez mentionné les applications, la configuration permanente des variables d’environnement système (fonctionne pour macOS Sierra; devrait également fonctionner pour El Capitan):
launchctl setenv Java_HOME $(/usr/libexec/Java_home -v 1.8)
(Ceci définira Java_HOME sur le dernier JDK 1.8, il est probable que vous ayez déjà effectué plusieurs mises à jour, par exemple javac 1.8.0_101, javac 1.8.0_131)
Bien sûr, changez 1.8 à 1.7 ou 1.6 (vraiment?) En fonction de vos besoins et de votre système
J'ai trouvé ceci pile pour aider, j'avais le même problème et je pouvais réparer:
Mon chemin Java était ici:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
et il fallait mettre dans mon .bash_profile
:
export Java_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\"
Espérons l'aide
Pour moi, maven semble travailler sur le fichier .mavenrc
:
echo "export Java_HOME=$(/usr/libexec/Java_home -v 1.8)" > ~/.mavenrc
Je suis sûr de l'avoir remarqué le SO aussi, je ne me souviens plus où.
Créer un fichier ~/.mavenrc
puis collez ceci dans le fichier
export Java_HOME=$(/usr/libexec/Java_home)
tester
mvn -v
Comme d'autres réponses le notent, la méthode correcte pour trouver le répertoire de base Java consiste à utiliser /usr/libexec/Java_home
.
La documentation officielle à ce sujet se trouve dans les questions techniques d'Apple QA1170: Important Java Répertoires sous OS X : https://developer.Apple.com/library/mac/qa/qa1170/_index.html