Mac OS X 10.6.7 Java Path Confus du JDK actuel

J’ai du mal à comprendre (chemins réels vs liens) pour plusieurs versions java sur mon Mac OSX. Normalement, dans Windows, si plusieurs versions de mon ordinateur sont installées, je peux simplement choisir la version de mon choix et l’utiliser. Mais dans MAC OS XI, il y a quelque chose qui s’appelle des liens vers CurrentJDK, et si je veux utiliser une version différente, je devrai changer le lien vers CurrentJdk, non? Mais ce qui est déroutant pour moi, c’est que, comme vous pouvez le voir ci-dessous, toutes mes versions pointent vers le même CurrentJDK, ce qui signifie que toutes les versions indiquent la version actuelle? Je m’attendais à ce qu’un seul d’entre eux pointe vers CurrentJDK et je pourrais simplement le remplacer par celui dont j’ai besoin, ce qui n’est pas le cas ici. Tout ce que j’ai besoin de savoir, c’est comment trouver le chemin du dossier bin (Commandes) pour chaque version, afin que je puisse simplement l’utiliser pour pointer vers CurrentJDK? Dites-moi également comment modifier le lien vers CurrentJDK.

$ java -version java version "1.6.0_24" Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334-10M3326) Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-334, mixed mode) $ pwd /System/Library/Frameworks/JavaVM.framework/Versions $ ls -l lrwxr-xr-x 1 root wheel 5 Mar 20 11:12 1.3 -> 1.3.1 drwxr-xr-x 3 root wheel 102 Dec 2 2009 1.3.1 lrwxr-xr-x 1 root wheel 10 Mar 20 11:12 1.4 -> CurrentJDK lrwxr-xr-x 1 root wheel 10 Mar 20 11:12 1.4.2 -> CurrentJDK lrwxr-xr-x 1 root wheel 10 Mar 20 11:12 1.5 -> CurrentJDK lrwxr-xr-x 1 root wheel 10 Mar 20 11:12 1.5.0 -> CurrentJDK lrwxr-xr-x 1 root wheel 10 Mar 20 11:12 1.6 -> CurrentJDK lrwxr-xr-x 1 root wheel 10 Mar 20 11:12 1.6.0 -> CurrentJDK drwxr-xr-x 10 root wheel 340 Mar 20 11:13 A lrwxr-xr-x 1 root wheel 1 Mar 20 11:12 Current -> A lrwxr-xr-x 1 root wheel 59 Mar 20 11:12 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents 

Très probablement, vous n’avez qu’un seul jdk installé, donc tous les liens logiciels pointent vers le même jdk. Si vous aviez cependant plusieurs jdks installés, vous devrez choisir celui à utiliser avec l’application “Préférences Java” dans votre application / Application / Utilitaires.

Les liens logiciels sont par ailleurs créés avec la commande ln -s de Terminal.

Pour différents types de JDK ou d’installations, vous aurez des chemins différents.

Sur Mac OS X Mavericks, le chemin trouvé est le suivant:

1) Défaut JRE intégré:

  /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home 

2) JDK téléchargés depuis Apple:

  /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/ 

3) JDK téléchargés depuis Oracle:

 /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home 

Il suffit de lancer les commandes suivantes:

 $ brew update $ brew install jenv $ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(jenv init -)"' >> ~/.bash_profile $ source ~/.bash_profile $ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/ oracle64-1.8.0.45 added 1.8.0.45 added 1.8 added $ jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home oracle64-1.7.0.79 added 1.7.0.79 added 1.7 added $ jenv versions * system (set by /Users/wanluwang/.jenv/version) 1.7 1.7.0.79 1.8 1.8.0.45 oracle64-1.7.0.79 oracle64-1.8.0.45 $ java -version java version "1.8.0_45" Java(TM) SE Runtime Environment (build 1.8.0_45-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode) $ jenv global oracle64-1.7.0.79 $ java -version java version "1.7.0_79" Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode) 

A partir de questions techniques Apple Questions Java:

Préférences de l’utilisateur

Sous Mac OS X, le moteur d’exécution Java fournit l’API java.util.prefs qui est soutenue par l’API et les répertoires de préférences Mac OS X standard. Utiliser simplement cette API Java pure lit et stocke les préférences de votre application dans ~ / Library / Preferences dans un fichier de liste de propriétés Mac OS X. Pour les applications qui peuvent déjà avoir leur propre format de préférences, ces préférences doivent également être stockées dans le répertoire ~ / Library / Preferences. Ce répertoire peut être atteint à partir du code Java en créant un fichier avec le chemin d’access de System.getProperty (“user.home”) + “/ Library / Preferences /” + “com.example.your.Application”. Une application qui devrait avoir des préférences globales pour tous les utilisateurs pourrait plutôt résider dans / Library / Preferences, mais ce répertoire n’est pas accessible en écriture pour les utilisateurs non-administrateurs.

définir $ JAVA_HOME = $ (/ usr / libexec / java_home) dans votre fichier .bash_profile

ou exporter JAVA_HOME = $ (/ usr / libexec / java_home);

echo $ JAVA_HOME