Comment définir ou modifier la version Java (JDK) par défaut sur OS X?
Comment pouvez-vous changer la version par défaut de Java sur un mac?
29 answers
Première exécution {[8] } qui produira quelque chose comme ce qui suit:
Matching Java Virtual Machines (3):
1.8.0_05, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
1.6.0_65-b14-462, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
Choisissez la version que vous voulez être la valeur par défaut (1.6.0_65-b14-462
pour des raisons d'arguments) puis:
export JAVA_HOME=`/usr/libexec/java_home -v 1.6.0_65-b14-462`
Ou vous pouvez spécifier uniquement la version majeure, comme:
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
Maintenant, lorsque vous exécutez java -version
, vous verrez:
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)
Ajoutez la ligne export JAVA_HOME…
au fichier d'initialisation de votre shell.
Pour Bash (comme indiqué par antonyh):
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
Pour les Poissons (comme indiqué par ormurin)
set -x JAVA_HOME (/usr/libexec/java_home -d64 -v1.8)
Mise à jour du .le fichier zshrc devrait fonctionner:
nano ~/.zshrc
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0)
Appuyez sur CTRL + X pour quitter l'éditeur Appuyez sur Y pour enregistrer vos modifications
source ~/.zshrc
echo $JAVA_HOME
java -version
Cette réponse est une tentative d'adresse: comment contrôler la version java à l'échelle du système (pas seulement dans le shell en cours d'exécution) lorsque plusieurs versions de JDKsont installées à des fins de développement sur macOS El Capitan ou plus récent (Sierra, High Sierra, Mojave). Pour autant que je sache, aucune des réponses actuelles ne le fait (*).
, en tant Que développeur, j'utilise plusieurs Jdk, et je veux passer de l'un à l'autre facilement. Habituellement j'ai le dernier stable pour le général utiliser, et d'autres pour les tests. Mais je ne veux pas que le système (par exemple lorsque je démarre monE) utilise la dernière version "early access" que j'ai pour l'instant. Je veux contrôler la valeur par défaut du système, et cela devrait être le dernier stable.
L'approche suivante fonctionne avec Java 7 à 12au moins (accès anticipé au moment de la rédaction de cet article), avec Oracle JDKou OpenJDK (y compris builds par AdoptOpenJDK produits après la mi-octobre 2018).
Solution sans 3ème outils de fête:
- laissez tous les JDK à leur emplacement par défaut, sous
/Library/Java/JavaVirtualMachines
. Le système choisira la version la plus élevée par défaut. -
Pour exclure un JDK d'être sélectionné par défaut, renommez son
Contents/Info.plist
enInfo.plist.disabled
. Ce JDK peut toujours être utilisé lorsque$JAVA_HOME
pointe vers lui, ou explicitement référencé dans un script ou une configuration. Il sera simplement ignoré par la commandejava
du système.
System launcher utilisera le JDK avec la version la plus élevée parmi ceux qui ont un Info.plist
fichier.
Lorsque vous travaillez dans un shell avec un JDK alternatif, choisissez votre méthode parmi les réponses existantes (jenv
, ou des alias/scripts personnalisés autour de /usr/libexec/java_home
, etc.).
Détails de l'enquêtedans cet essentiel .
(*) Les réponses actuelles sont obsolètes (ne sont plus valables pour macOS El Capitan ou Sierra), ou ne s'adressent qu'à un seul JDK, ou ne traitent pas de l'aspect à l'échelle du système. Beaucoup expliquent comment changer $JAVA_HOME
, mais cela n'affecte que le shell actuel et ce qui est lancé à partir de là. Cela n'affectera pas une application démarrée à partir du lanceur OS (sauf si vous modifiez le bon fichier et la déconnexion/connexion, ce qui est fastidieux). Même chose pour jenv, c'est cool et tout, mais pour autant que je sache, il ne fait que changer les variables d'environnement, donc il a la même limitation.
En ajoutant aux réponses ci-dessus, j'ai mis les lignes suivantes dans mon .bash_profile
(ou .zshrc
pour macOS 10.15+) ce qui le rend vraiment pratique pour changer (y compris le commentaire de @elektromin pour java 9):
alias j12="export JAVA_HOME=`/usr/libexec/java_home -v 12`; java -version"
alias j11="export JAVA_HOME=`/usr/libexec/java_home -v 11`; java -version"
alias j10="export JAVA_HOME=`/usr/libexec/java_home -v 10`; java -version"
alias j9="export JAVA_HOME=`/usr/libexec/java_home -v 9`; java -version"
alias j8="export JAVA_HOME=`/usr/libexec/java_home -v 1.8`; java -version"
alias j7="export JAVA_HOME=`/usr/libexec/java_home -v 1.7`; java -version"
Après l'insertion, exécutez $ source .bash_profile
Je peux passer à Java 8 en tapant ce qui suit:
$ j8
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
Une fonction de petit poisson basée sur / usr / libexec / java_home
function jhome
set JAVA_HOME (/usr/libexec/java_home $argv)
echo "JAVA_HOME:" $JAVA_HOME
echo "java -version:"
java -version
end
Si vous n'utilisez pas fish, vous pouvez faire quelque chose de similaire dans bash:
#!/bin/bash
jhome () {
export JAVA_HOME=`/usr/libexec/java_home $@`
echo "JAVA_HOME:" $JAVA_HOME
echo "java -version:"
java -version
}
Puis pour basculer entre javas faire:
$> jhome #switches to latest java
$> jhome -v 1.7 #switches to java 1.7
$> jhome -v 1.6 #switches to java 1.6
C'est un peu délicat, mais essayez de suivre les étapes décrites dans Installation de Java sur OS X 10.9 (Mavericks). Fondamentalement, vous devrez mettre à jour votre alias en java
.
, étape par Étape:
Après avoir installé JDK 1.7, vous devrez faire le sudo ln -snf
afin de changer le lien en java
actuel. Pour ce faire, ouvrez Terminal et émettez la commande:
sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents \
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
Notez que le répertoire {[5] } peut changer en fonction de la version du SDK que vous avez installer.
Maintenant, vous devez définir JAVA_HOME
pour indiquer où jdk_1.7.0_xx.jdk
a été installé. Ouvrez à nouveau le Terminal et tapez:
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home"
Vous pouvez ajouter la ligne export JAVA_HOME
ci-dessus dans votre fichier .bashrc
pour avoir java en permanence dans votre Terminal
Utiliser jenv est un moyen facile.
1.Installer jenv
curl -s get.jenv.io | bash
2.Configuration jenv
cd ~/.jenv/candidates/
mkdir java
cd java
mkdir 1.7
mkdir 1.8
3.Lien symbolique le chemin jdk
ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin ~/.jenv/candidates/java/1.7
ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin ~/.jenv/candidates/java/1.8
4.Vous êtes tous ensemble
Commande de commutation:
Jenv utilise java 1.8
Définir par défaut:
Jenv par défaut de java 1.7
Installer JDK, pas seulement JRE
/usr/libexec/java_home -v 1.8
Donne
/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
Suivant
touch .bash_profile
open -a TextEdit.app .bash_profile
TextEdit vous montrera une page vierge que vous pouvez remplir.
Ajouter au doc:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
Dans le terminal:
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
, Essayez la commande:
javac -version
Devrait sortir:
javac 1.8.0_111
Tl; dr
, Ajouter la ligne:
export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home'
Vers le fichier
~/.bash_profile
(remplacer jdk1.8.0_144.jdk avec votre version téléchargée)
, Puis source ~/.bash_profile
Utilisez jenv, c'est comme un gestionnaire d'environnement Java. Il est super facile à utiliser et à nettoyer
Pour Mac, suivez les étapes suivantes:
brew install jenv
git clone https://github.com/gcuisinier/jenv.git ~/.jenv
Installation: Si vous utilisez bash, procédez comme suit:
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
Ajouter les versions souhaitées de JVM à jenv:
jenv add /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
jenv add /System/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home
Vérifiez les versions installées:
jenv versions
Définissez la version Java que vous souhaitez utiliser par:
jenv global oracle64-1.6.0
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
}
Mettez ceci dans votre ~/.profil et à utiliser dans votre terminal comme setjdk 1.8
, setjdk 1.7
, setjdk 9
etc etc...
Si vous n'avez pas removeFromPath
, alors il est:
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
Quatre étapes faciles à l'aide de terminal pour les personnes qui utilisent le processus par défaut.. :)
echo $JAVA_HOME
vous donne la maison java actuelle. Par exemple:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/
-
cd /Library/Java/JavaVirtualMachines/
vous emmènera dans le dossier où vous installez normalement jdks (Il peut être différent pour vos machines) -
ls
vous montre les dossiers disponibles (normalement, il devrait avoir les numéros de version, par exemple:jdk1.8.0_191.jdk openjdk-11.0.2.jdk
) -
export JAVA_HOME='/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home'
va changer la maison java..
Ajouter la commande suivante au fichier ~/.zshenv
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
MacOS El Capitan ou plus récent choisira la version supérieure du JDK disponible dans /Library/Java/JavaVirtualMachines
, donc pour rétrograder, vous pouvez renommer le fichier Info.plist
en quelque chose d'autre comme Info.plist.disabled
afin que le système d'exploitation choisisse une version précédente.
, Vous pouvez l'ajouter à votre .bash_profile pour avoir la version définie par défaut.
//Open bash profile
open ~/.bash_profile
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
// run bash profile
source ~/.bash_profile
De la page de manuel officielle d'Apple java_home(1) :
**USAGE**
/usr/libexec/java_home helps users set a $JAVA_HOME in their login rc files, or provides a way for
command-line Java tools to use the most appropriate JVM which can satisfy a minimum version or archi-
tecture requirement. The --exec argument can invoke tools in the selected $JAVA_HOME/bin directory,
which is useful for starting Java command-line tools from launchd plists without hardcoding the full
path to the Java command-line tool.
Usage for bash-style shells:
$ export JAVA_HOME=`/usr/libexec/java_home`
Usage for csh-style shells:
% setenv JAVA_HOME `/usr/libexec/java_home`
Script de commutation JDK
J'ai adapté la réponse de @Alex ci-dessus et écrit ce qui suit pour corriger le code pour Java 9.
$ cat ~/.jdk
#!/bin/bash
#list available jdks
alias jdks="/usr/libexec/java_home -V"
# jdk version switching - e.g. `jdk 6` will switch to version 1.6
function jdk() {
echo "Switching java version $1";
requestedVersion=$1
oldStyleVersion=8
# Set the version
if [ $requestedVersion -gt $oldStyleVersion ]; then
export JAVA_HOME=$(/usr/libexec/java_home -v $1);
else
export JAVA_HOME=`/usr/libexec/java_home -v 1.$1`;
fi
echo "Setting JAVA_HOME=$JAVA_HOME"
which java
java -version;
}
Passer à Java 8
$ jdk 8
Switching java version 8
Setting JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
/usr/bin/java
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
Passer à Java 9
$ jdk 9
Switching java version 9
Setting JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
/usr/bin/java
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
Si vous ne pouvez toujours pas le définir. à l'aide de cette commande.
Export JAVA_HOME=/usr/libexec/java_home -v 1.8
Ensuite, vous devez utiliser celui-ci.
Export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
Cela fonctionnera sûrement.
Découvrez d'abord où stockez-vous les variables d'environnement -
- emacs
- bash_profile
- fichier du crsh
Étapes pour configurer la variable d'environnement :-
-
Télécharger le jdk depuis JAVA
-
Installez-le en double-cliquant
-
Maintenant configurer les variables d'environnement dans votre fichier
A. Pour emacs.profil vous pouvez utiliser ce lien OU voir la capture d'écran ci-dessous
B. Pour la configuration du profil ZSH -
1. export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
2. source ~/.zshrc - Restart zshrc to reflect the changes.
3. echo $JAVA_HOME - make sure path is set up properly
----> /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
4. java -version
--> java version "1.8.0_112" Java(TM) SE Runtime Environment (build 1.8.0_112-b16)Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)
Tous ensemble Maintenant, vous pouvez facilement mettre à niveau ou dégrader la version JAVA..
- Ajouter la ligne de code suivante à votre .zshrc (ou bash_profile):
Alias j='f(){ export JAVA_HOME=
/usr/libexec/java_home -v $1
};f'
- Enregistrer dans la session:
Source source .zshrc
- Exécuter la commande (par exemple j 13, j14, j1.8...)
J j 1.8
Explication Ceci est paramétré afin que vous n'ayez pas besoin de mettre à jour le script comme les autres solutions publiées. Si vous n'avez pas le JVM installé, on vous dit. Exemples de cas ci-dessous:
/Users/user/IDE/project $ j 1.8
/Users/user/IDE/project $ java -version
openjdk version "1.8.0_265"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_265-b01)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.265-b01, mixed mode)
/Users/user/IDE/project $ j 13
/Users/user/IDE/project $ java -version
openjdk version "13.0.2" 2020-01-14
OpenJDK Runtime Environment (build 13.0.2+8)
OpenJDK 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)
/Users/user/IDE/project $ j 1.7
Unable to find any JVMs matching version "1.7".
Si vous utilisez fish et que vous utilisez mac et que vous voulez pouvoir basculer entre les JDK, alors ci-dessous fonctionne pour moi sur mac.
La réponse de @ kenglxn n'a pas fonctionné pour moi et j'ai compris que bcos n'avait pas défini-g qui est global !
Mettre ci-dessous sous ~/.config/poisson/config.poisson
alias j8="jhome -v 1.8.0_162"
alias j9="jhome -v 9.0.1"
function jhome
set -g -x JAVA_HOME (/usr/libexec/java_home $argv)
echo "JAVA_HOME:" $JAVA_HOME
echo "java -version:"
java -version
end
funcsave jhome
Pour savoir quelle version / version mineure vous avez installée, vous pouvez faire:
/usr/libexec/java_home -V 579ms Wed 14 Feb 11:44:01 2018
Matching Java Virtual Machines (3):
9.0.1, x86_64: "Java SE 9.0.1" /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
1.8.0_162, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home
1.8.0_121, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
Si vous avez plusieurs versions et que vous souhaitez exécuter quelque chose en utilisant une version spécifique, utilisez cet exemple:
/usr/libexec/java_home -v 1.7.0_75 --exec java -jar you-file.jar
Considérez l'approche suivante uniquement pour changer le JDK pour chaque onglet spécifique de votre terminal (c'est-à-dire: iTerm
).
Ayant dans le chemin /Library/Java/JavaVirtualMachines
les deux jdk suivants
openjdk8u275-b01
openjdk-11.0.9.1+1
Et dans le fichier .bash_profile
ce qui suit:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk-11.0.9.1+1/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
Si vous ouvrez Iterm
avec un premier Onglet A et exécutez ce qui suit:
javac -version
javac 11.0.9.1
java -version
openjdk version "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9.1+1)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9.1+1, mixed mode)
La sortie est correcte et attendue
, Mais si vous ouvrez une deuxième Onglet B et remplacer que JDK faire ce qui suit:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk8u275-b01/Contents/Home/
export PATH=$JAVA_HOME/bin:$PATH
Puis
javac -version
javac 1.8.0_275
java -version
openjdk version "1.8.0_275"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_275-b01)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.275-b01, mixed mode)
Cela fonctionne bien. Bien sûr, si le Tab B est fermé ou si vous ouvrez un nouveau Tab C tous fonctionnent selon les paramètres .bash_profile
Basé sur la réponse de @markhellewell, j'ai créé quelques fonctions d'alias qui le feront pour vous. Ajoutez-les simplement à votre fichier de démarrage shell
#list available jdks
alias jdks="/usr/libexec/java_home -V"
# jdk version switching - e.g. `jdk 6` will switch to version 1.6
function jdk() {
echo "Switching java version";
export JAVA_HOME=`/usr/libexec/java_home -v 1.$1`;
java -version;
}
Https://gist.github.com/Noyabronok/0a90e1f3c52d1aaa941013d3caa8d0e4
Voici comment je le fais sur mon Linux (Ubuntu / Mint mate), je suppose que Mac peut le faire de la même façon.
Installation et configuration
Suit:
- [Partie de base]
- Télécharger jdk (la .tgz fichier) à la main.
- Décompresser et renommer correctement, à un emplacement approprié.
par exemple/mnt/star/program/java/jdk-1.8
- Créez un lien souple, qui sera modifié pour changer de version java plus tard.
e.gln -s /mnt/star/program/java/jdk-1.8 /mnt/star/program/java/java
Ainsi/mnt/star/program/java/java
est le lien souple. - Définir
JAVA_HOME
dans un script de démarrage.
Pourrait utiliser un fichier comme/etc/profile.d/eric.sh
, ou simplement utiliser~/.bashrc
.
par exempleJAVA_HOME=/mnt/star/program/java/java
- Puis ouvrez un nouveau shell bash.
java -version
devrait imprimer la version java. - [Plus de version-partie]
- Téléchargez et installez plus de version Java, au besoin, similaire aux étapes ci-dessus.
par exemple/mnt/star/program/java/jdk-11
- [Interrupteur de la partie]
- Dans
~/.bashrc
, définir une variable pour divers Java version.
e.g_E_JAVA_HOME_11='/mnt/star/program/java/jdk-11'
_E_JAVA_HOME_8='/mnt/star/program/java/jdk-8'
# dir of default version,
_E_JAVA_HOME_D=$_E_JAVA_HOME_8
- Dans
~/.bashrc
, définissez la commande pour changer de version Java.
e.g## switch java version,
alias jv11="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_11 $JAVA_HOME"
alias jv8="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_8 $JAVA_HOME"
# default java version,
alias jvd="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_D $JAVA_HOME"
alias jv="java -version"
- Dans le terminal,
source ~/.bashrc
pour que les modifications prennent effet. - Pourrait alors basculer en utilisant les commandes définies.
Commandes-d'en haut config
Commandes:
-
jv11
Passer à Java 11 -
jv8
Passer à Java 8 -
jvd
Passez à la version Java par défaut, qui est indiquée par_E_JAVA_HOME_D
défini ci-dessus. -
jv
Afficher la version java.
Exemple de sortie:
eric@eric-pc:~$ jv
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
eric@eric-pc:~$ jv11
eric@eric-pc:~$ jv
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)
eric@eric-pc:~$ jvd
eric@eric-pc:~$ jv
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
eric@eric-pc:~$
Mécanisme
- Il commute en changeant le lien logiciel, qui est utilisé comme
JAVA_HOME
.
Conseils
-
Sur ma machine lors de l'installation de jdk à la main, je garde la version mineure, puis fais un doux lien avec la version majeure, mais sans la version mineure.
e.g de
// ceci est le dir réel,jdk1.8.0_191
// c'est un doux lien de
jdk1.8.0_191
jdk-8
// c'est un doux lien de
jdk-8
oujdk-11
java
Je définis un alias de commande dans
~/.bashrc
, mais je définis une variable dans un fichier séparé.
J'utilise~/.eric_var
pour définir les variables, et~/.bashrc
le recherchera (par exemplesource $HOME/.eric_var
).
Un moyen facile d'inclure un JDK installé séparément dans la liste donnée par /usr/libexec/java_home -V
est de lier symboliquement le répertoire comme suit:
sudo ln -s path/to/jdk /Library/Java/JavaVirtualMachines/jdk-[some-identifier].jdk
Par exemple, pour enregistrer le JDK inclus avec Android Studio (1.8.0_152 au moment de la rédaction), utilisez:
sudo ln -s /Applications/Android\ Studio.app/Contents/jre/jdk /Library/Java/JavaVirtualMachines/jdk-android-studio.jdk
Maintenant java_home
liste le JDK sous Matching Java Virtual Machines
et vous pouvez le sélectionner comme décrit ci-dessus.
Précédemment, j'ai utilisé alias ' es dans .zshrc pour une commutation facile entre les versions, mais aujourd'hui j'utilise SDKMAN. SDKMAN peut également gérer la définition de java par défaut pour le système, ainsi que le téléchargement et l'installation de nouvelles versions de java.
Une fois sdkman installé, vous pouvez effectuer des commandes similaires à ce qui est possible avec l'outil nvm pour gérer les versions de nœuds.
sdk list java
répertoriera les versions Java disponibles sur votre système ainsi que disponibles en ligne pour l'installation y compris leur identifiant que vous pouvez utiliser dans le sdk use
, sdk default
et sdk install
commandes.
Par exemple pour installer Amazon Corretto 11.0.8 et demander si cela devrait être la nouvelle valeur par défaut, faites ceci:
sdk install java 11.0.8-amzn
Une fonctionnalité que j'utilise également régulièrement est le fichier .sdkmanrc
.
Si vous placez cela dans un répertoire sur votre machine et exécutez la commande sdk env
dans le répertoire, vous pouvez configurer les versions d'outils utilisées uniquement dans ce répertoire. Il est également possible de faire des versions d'outils de commutation sdkman automatiquement en utilisant la configuration sdkman_auto_env=true
.
Sdkman aussi prend en charge la gestion d'autres outils pour la JVM tels que gradle, kotlin, maven et plus encore.
Pour plus d'informations consultez https://sdkman.io/usage#env
Je l'ai fait pour le terminal local avec
export JAVA_8_HOME=(/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/)
export JAVA_13_HOME=(/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home/)
alias java8='export JAVA_HOME=$JAVA_8_HOME; alias java="$JAVA_8_HOME/bin/java"; $JAVA_8_HOME/bin/java -version'
alias java13='export JAVA_HOME=$JAVA_13_HOME; alias java="$JAVA_13_HOME/bin/java"; $JAVA_13_HOME/bin/java -version'
export JAVA_HOME=$JAVA_13_HOME
Cet outil fera le travail pour vous:
Http://www.guigarage.com/2013/02/change-java-version-on-mac-os/
C'est un simple JavaOne qui peut être utilisé pour définir la version Java actuelle. La version peut être utilisée dans un shell qui est ouvert après qu'une version a été sélectionnée dans l'outil.
SOLUTION TROP FACILE: Quel mal de tête - c'était une solution rapide et facile qui a fonctionné pour moi.
Mac OS Sierra Version 10.12.13
Utilisez les touches de raccourci: CMD + MAJ + G-type dans " / Bibliothèque/"
Trouver le dossier JAVA
-
Clic droit Java Folder = Déplacer vers la Corbeille (Mot de passe requis)
Installer: Il s'agit d'un jeu de développement Java SE 8 jdk-8u131-macosx-x64.dmg | Télécharger le SDK Javascript
- Assurez-vous que le nouveau JAVA le dossier apparaît dans / LIBRARY /
- Installer Eclipse | Installer Eclipse ID pour les développeurs Java
- Boom fait