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?

Author: Venkat, 2014-02-23

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
 1696
Author: markhellewell, 2020-07-04 11:28:34

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 en Info.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 commande java 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.

 463
Author: Hugues M., 2018-11-04 11:06:51

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)
 286
Author: Justin Zhang, 2020-02-26 12:43:27

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

Ref: https://gist.github.com/kenglxn/1843d552dff4d4233271

 55
Author: kenglxn, 2015-06-16 18:51:43

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

 35
Author: Trein, 2017-05-23 12:18:23

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

 35
Author: Yuantao, 2020-06-28 13:03:31

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
 28
Author: user2708060, 2016-10-31 13:02:29

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

 28
Author: dustinevan, 2019-07-18 20:23:19

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
 25
Author: slal, 2019-04-16 11:23:55
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:?;;") }

 12
Author: Gabriel Reiser, 2017-09-27 04:16:50

Quatre étapes faciles à l'aide de terminal pour les personnes qui utilisent le processus par défaut.. :)

  1. echo $JAVA_HOME vous donne la maison java actuelle. Par exemple: /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/

  2. cd /Library/Java/JavaVirtualMachines/ vous emmènera dans le dossier où vous installez normalement jdks (Il peut être différent pour vos machines)

  3. 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)
  4. export JAVA_HOME='/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home' va changer la maison java..
 12
Author: Abbin Varghese, 2019-11-06 08:45:13

Ajouter la commande suivante au fichier ~/.zshenv

export JAVA_HOME=`/usr/libexec/java_home -v 1.8` 
 9
Author: xsilen T, 2019-03-28 12:36:27

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.

 9
Author: Joaquín L. Robles, 2019-10-23 17:09:59

, 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
 8
Author: Amin Agha, 2020-04-12 16:56:03

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`
 6
Author: Antonio, 2014-11-18 13:39:10

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)
 6
Author: Marcello de Sales, 2017-12-04 06:54:36

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.

 6
Author: Rohit Kumar, 2018-09-27 04:32:09

Découvrez d'abord où stockez-vous les variables d'environnement -

  1. emacs
  2. bash_profile
  3. fichier du crsh

Étapes pour configurer la variable d'environnement :-

  1. Télécharger le jdk depuis JAVA

  2. Installez-le en double-cliquant

  3. 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

entrez la description de l'image ici

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..

 6
Author: Vrushali Raut, 2020-06-20 09:12:55
  1. Ajouter la ligne de code suivante à votre .zshrc (ou bash_profile):

Alias j='f(){ export JAVA_HOME=/usr/libexec/java_home -v $1 };f'

  1. Enregistrer dans la session:

Source source .zshrc

  1. 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".
 6
Author: feistyfawn, 2020-11-24 14:07:55

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
 4
Author: Gob00st, 2018-02-14 11:50:01

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
 3
Author: MonstroDev, 2015-02-03 10:29:59

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

 3
Author: Manuel Jordan, 2021-01-17 16:14:09

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

 2
Author: Alex, 2017-03-08 16:07:58

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.g ln -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 exemple JAVA_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 ou jdk-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 exemple source $HOME/.eric_var).

 2
Author: user218867, 2018-12-09 12:12:55

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.

 2
Author: friederbluemle, 2019-01-14 12:47:44

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

 2
Author: joensson, 2020-08-12 09:21:54

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
 1
Author: Trackhe, 2020-04-08 14:48:54

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.

 0
Author: Hendrik Ebbers, 2014-10-13 09:14:36

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

  1. Utilisez les touches de raccourci: CMD + MAJ + G-type dans " / Bibliothèque/"

  2. Trouver le dossier JAVA

  3. Clic droit Java Folder = Déplacer vers la Corbeille (Mot de passe requis)

  4. Installer: Il s'agit d'un jeu de développement Java SE 8 jdk-8u131-macosx-x64.dmg | Télécharger le SDK Javascript

  5. Assurez-vous que le nouveau JAVA le dossier apparaît dans / LIBRARY /
  6. Installer Eclipse | Installer Eclipse ID pour les développeurs Java
  7. Boom fait
 -6
Author: eric323, 2017-05-24 15:42:54