J'essaie d'exécuter une application Java sur mon MAC OS X 10.11 (El Capitan).
J'ai utilisé ce lien pour définir Java_HOME sur mon MAC OS X 10.11.
Je suis capable d'exécuter les commandes suivantes:
Version Java
quel Java
Cependant, lorsque je vais à l'application Terminal sur MAC et que je tape echo $ Java_HOME, je ne vois rien. Pourquoi donc? Cela signifie-t-il que mon Java_HOME n'est pas défini correctement?
Ok, tout d’abord, nous devons préciser où pour définir Java_HOME
.
Simplifié, vous pouvez le définir dans deux fichiers: soit ~/.bashrc
, soit ~/bash_profile
. Par default , le premier est exécuté pour ce qu'on appelle des "shells interactifs sans connexion", tandis que le dernier est utilisé pour les "shells de connexion" . Un "shell de connexion" correspond exactement à ce que vous attendez: un shell qui est démarré après la connexion via la ligne de commande. Un "shell interactif sans connexion" est un shell qui est démarré à partir d'une interface graphique par exemple. Donc, d'après cela, nous devrions mettre notre déclaration d'exportation dans ~/.bashrc
.
Note latérale: Bien que l'application "Terminal" d'OS X lise les deux fichiers mentionnés, il ne s'agit pas du comportement par défaut et ne doit donc pas être traitée comme telle. Et c'est pourquoi j'ai écrit une explication.
Vous devez exporter Java_HOME dans le fichier ~/.bashrc
pour que la variable soit définie à chaque ouverture d'un shell.
Sous OS X, les kits de développement Java et les environnements d'exécution sont stockés sous /Library/Java/JavaVirtualMachines/
pendant un bon moment maintenant. Jetez un coup d'oeil là-bas. Voici à quoi ça ressemble sur ma machine:
/Library/Java/JavaVirtualMachines/
├── jdk1.7.0_45.jdk
├── jdk1.8.0_20.jdk
├── jdk1.8.0_25.jdk
└── jdk1.8.0_51.jdk
Les sous-dossiers ressemblent à ceci
jdk1.7.0_45.jdk/
└── Contents
├── Home
├── Info.plist
└── MacOS
Et là nous l'avons eu. Donc, si vous vouliez pointer sur le JDK 1.7.0_45, vous mettriez la déclaration suivante dans votre .bashrc
export Java_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"
Pour vous assurer que les fichiers binaires corrects pour cette version de Java sont appelés, vous devez également ajouter les éléments suivants quelque part après l'instruction ci-dessus:
export PATH=$Java_HOME/bin:$PATH
export Java_HOME=$(/usr/libexec/Java_home -v 1.8)
c'est pour Java 8 .... lien d'origine où je l'ai trouvé ici Installation de Java sous Mac OS X 10.10 Yosemite et 10.11 El Capitan
Mais la réponse acceptée fonctionne aussi. Juste besoin de faire attention aux changements de chemin après les mises à jour.
Vous trouverez de nombreuses réponses sur la définition de Java_HOME dans OSX, mais il est difficile de trouver une réponse à la question de savoir si la définition de Java_HOME est nécessaire.
Pourquoi donc? Est-ce que cela signifie que Java_HOME n'est pas défini correctement?
Sous OSX, la variable d’environnement Java_HOME est facultative. Les installateurs JRE et JDK ne prévoient pas que Java_HOME soit défini; donc, ne pas définir Java_HOME convient parfaitement.
Si vous souhaitez utiliser jdk 1.6 pour une raison quelconque, qu’Apple n’a plus pris en charge. Il sera supprimé après la mise à jour de Mac OS. Vous pouvez toujours obtenir jdk 1.6 à partir de cette page: https://support.Apple.com/kb/DL1572?locale=zh_CN
Après avoir installé jdk 1.6 à nouveau, n'oubliez pas de confirmer l'exportation du répertoire correct pour la variable système $ Java_HOME dans ~/.bash_profile, etc. ... Pour moi, il s'agit de "/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents /Accueil".