De nombreuses applications Java qui utilisent des scripts shell pour configurer leur environnement utilisent la JAVA_HOME
variable d'environnement pour démarrer la bonne version de Java, localiser les JAR JRE, etc.
Dans macOS X 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 la machine virtuelle actuelle réelle (telle que définie dans le volet Préférences Java).
Mais lequel devrait être utilisé - ou est-il acceptable d'en utiliser un?
java
macos
configuration
Robert Christie
la source
la source
Réponses:
Je viens de définir
JAVA_HOME
la sortie de cette commande, qui devrait vous donner le chemin Java spécifié dans vos préférences Java. Voici un extrait de mon.bashrc
fichier, qui définit cette variable: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 gère nécessite Java 5 bits 32 sur OS X, donc lors de l'utilisation de ce programme, j'ai définiJAVA_HOME
en exécutant:Pour ceux d'entre vous qui n'ont pas
java_home
sur votre chemin, ajoutez-le comme ceci.Références :
Oracle explique la commande java_home
Un article pour configurer le JDK dans Spring Tool Suite (Eclipse 2019) sur MacOS
la source
En outre, il est intéressant de définir 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 également dans ~ / .profile:
export PATH=${JAVA_HOME}/bin:$PATH
PS: Pour OSX, j'utilise généralement .profile dans le répertoire HOME au lieu de .bashrc
la source
.bash_profile
- pourquoi utilisez-vous que le générique.profile
?.profile
est générique, il fonctionnera avecsh
oubash
, tandis qu'il.bash_profile
est exclusif àbash
. Cela isole également les paramètres des applications qui utilisent.bash_profile
, commeMacPorts
. Mais vous pouvez utiliser l'un des deux en toute sécurité. En savoir plus ici.bash_profile
dérogations.profile
..bash_profile
est spécifique, alors qu'il.profile
est générique, pour toutes lessh
variantes.java
votre,/usr/bin
il ne devrait pas être nécessaire d'ajouter explicitement$JAVA_HOME
à votre chemin.J'ai MAC OS X (Sierra) 10.12.2 .
J'ai configuré JAVA_HOME pour qu'il fonctionne sur React Native (pour les applications Android) en suivant les étapes suivantes.
Ouvrez Terminal (Commande + R, tapez Terminal, appuyez sur ENTRÉE).
Ajoutez les lignes suivantes à ~ / .bash_profile .
export JAVA_HOME=$(/usr/libexec/java_home)
Exécutez maintenant 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) retournée sera quelque chose comme ci-dessous.
/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
C'est ça.
la source
$JAVA_HOME
réfère$(/usr/libexec/java_home)
et$(/usr/libexec/java_home)
est référé en interne/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
par le système.Je suis sur Mac OS 10.6.8
La solution la plus simple qui fonctionne pour moi est tout simplement
Pour tester si cela fonctionne, insérez
ça montre
vous pouvez également tester
la source
De nos jours, Java semble être installé dans
/Library/Java/JavaVirtualMachines
la source
J'ai tendance à utiliser
/Library/Java/Home
. Le fonctionnement du volet des préférences doit être à jour avec votre version préférée.la source
Cela ne fonctionne plus dans YOSEMITE pour des APPLICATIONS GRAPHIQUES! Comme l'éclipse, 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:
(Avec votre chemin d'installation! Fonctionne peut-être avec $ (/ usr / libexec / java_home) au lieu du chemin complet aussi.)
Consultez ici l'excellent article sur la solution permanente: la définition des variables d'environnement via launchd.conf ne fonctionne plus sous OS X Yosemite / El Capitan / macOS Sierra?
la source
J'ai trouvé cette pile pour aider, j'avais le même problème et je pouvais résoudre:
Mon chemin java était ici:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
et était nécessaire pour mettre dans mon
.bash_profile
:export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\"
J'espère que l'aide
la source
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):
(cela mis JAVA_HOME au dernier 1,8 JDK, les chances sont que vous avez passé par serveral mises à jour par exemple javac 1.8.0_101, javac 1.8.0_131)
pour répondre à vos besoins et votre système Bien sûr, le changement de 1,8 à 1.7 ou 1.6 (vraiment?)
la source
Comme d'autres réponses le notent, la bonne façon de trouver le répertoire de base Java est d'utiliser
/usr/libexec/java_home
.La documentation officielle à ce sujet se trouve dans les questions et réponses techniques d'Apple QA1170: répertoires Java importants sur OS X : https://developer.apple.com/library/mac/qa/qa1170/_index.html
la source
Pour moi, maven semble fonctionner à partir du
.mavenrc
fichier:Je suis sûr que je l'ai ramassé sur SO aussi, je ne me souviens plus où.
la source
Créer un fichier
~/.mavenrc
puis collez-le dans le fichier
export JAVA_HOME=$(/usr/libexec/java_home)
tester
mvn -v
la source
Il est recommandé de vérifier le shell du terminal par défaut avant de définir la variable d'environnement JAVA_HOME , via les commandes suivantes:
Si votre terminal par défaut est / bin / bash (Bash), vous devez utiliser @hygull méthode
Si votre terminal par défaut est / bin / zsh (Z Shell), vous devez définir ces variables d'environnement dans le fichier ~ / .zshenv avec le contenu suivant:
De même, pour tout autre type de terminal non mentionné ci-dessus, vous devez définir la variable d'environnement dans son fichier env de terminal respectif.
Cette méthode a testé son fonctionnement dans la version 10.14.6 de macOS Mojave .
la source
Pour les utilisateurs de Fish Shell, utilisez quelque chose comme ceci:
alias java7 "set -gx JAVA_HOME (/usr/libexec/java_home -v1.7)"
la source