web-dev-qa-db-fra.com

Comment installer Java sur Mac OSX permettant le changement de version?

Je souhaite installer OpenJDK Java 11 sur Mac OSX et l’utiliser avec d’autres JDK, car il s’agit d’une version plus récente. Actuellement, j'ai téléchargé le fichier tar.gz et je l'ai placé sur mon chemin, mais c'est difficile à maintenir.

Les seules autres installations que j'ai trouvées qui font plus de choses automatiquement sont l'installation d'Oracle via Homebrew, mais c'est le JDK commercial et je veux celui à source ouverte!

brew cask info Java

Spectacles:

Java: 11,28: 55eed80b163941c8885ad9298e6d786a https://www.Oracle.com/technetwork/Java/javase/overview/index.html

Il s’agit du JDK Oracle et non d’OpenJDK, voir: https://discourse.brew.sh/t/how-to-install-openjdk-with-brew/712

Suivre les instructions d'une question plus ancienne ( Mac OS X et plusieurs versions de Java ) est obsolète et me donne la version erronée - Oracle pas OpenJDK.

Update: _ À compter du 3 octobre 2018, le fût Homebrew pointe maintenant sur OpenJDK 11

90
Jayson Minard

Changement manuel de la version système par défaut sans outils tiers:

Comme détaillé dans cette réponse plus ancienne , sur macOS /usr/bin/Java est un outil d'encapsulation qui utilisera la version Java désignée par Java_HOME ou si cette variable n'est pas définie recherchera les installations Java sous /Library/Java/JavaVirtualMachines/ et utilisera celle avec la version la plus récente. Il détermine les versions en regardant Contents/Info.plist sous chaque paquet.

Armé de cette connaissance, vous pouvez:

  • contrôle quelle version le système utilisera en renommant Info.plist dans les versions que vous ne souhaitez pas utiliser par défaut (ce fichier n'est pas utilisé par le runtime Java lui-même).
  • contrôler la version à utiliser pour des tâches spécifiques en définissant $Java_HOME

Je viens de vérifier que cela est toujours vrai avec OpenJDK & Mojave.

Sur un tout nouveau système, aucune version de Java n’est installée:

$ Java -version
No Java runtime present, requesting install.

Annuler cela, téléchargez OpenJDK 11 & 12ea sur https://jdk.Java.net ; Installer OpenJDK11:

$ cd /Library/Java/JavaVirtualMachines/
$ Sudo tar xzf ~/Downloads/openjdk-11.0.1_osx-x64_bin.tar.gz

Le système Java est maintenant 11:

$ Java -version
openjdk version "11.0.1" 2018-10-16
[...]

Installez OpenJDK12 (accès anticipé pour le moment):

$ Sudo tar xzf ~/Downloads/openjdk-12-ea+17_osx-x64_bin.tar.gz 

Le système Java est maintenant 12:

$ Java -version
openjdk version "12-ea" 2019-03-19
[...]

Cachons maintenant OpenJDK 12 du wrapper Java du système:

$ cd jdk-12.jdk/Contents/
$ Sudo mv Info.plist Info.plist.disabled

Le système Java est de retour à 11:

$ Java -version
openjdk version "11.0.1" 2018-10-16
[...]

Et vous pouvez toujours utiliser la version 12 ponctuellement en définissant manuellement Java_HOME:

$ export Java_HOME=/Library/Java/JavaVirtualMachines/jdk-12.jdk/Contents/Home
$ Java -version
openjdk version "12-ea" 2019-03-19
[...]
2
Hugues M.

Voici comment je l'ai fait. 

Étape 1: Installez Java 11

Vous pouvez télécharger Java 11 dmg pour mac à partir d'ici: https://www.Oracle.com/technetwork/Java/javase/downloads/jdk11-downloads-5066655.html

Étape 2: Après l'installation de Java 11. Confirmez l'installation de toutes les versions. Tapez la commande suivante dans votre terminal.

/usr/libexec/Java_home -V

Étape 3: Éditez le fichier .bash_profile

Sudo nano ~/.bash_profile

Étape 4: Ajoutez 11.0.1 par défaut. (Ajouter la ligne ci-dessous au fichier bash_profile).

export Java_HOME=$(/usr/libexec/Java_home -v 11.0.1)

pour passer à n'importe quelle version

export Java_HOME=$(/usr/libexec/Java_home -v X.X.X)

Maintenant, appuyez sur CTRL + X pour quitter le bash. Appuyez sur 'Y' pour enregistrer les modifications.

Étape 5: Recharger bash_profile

source ~/.bash_profile

Étape 6: Confirmer la version actuelle de Java

Java -version
1
VK321

Une autre alternative consiste à utiliser SDKMAN ! Voir https://wimdeblauwe.wordpress.com/2018/09/26/switching-between-jdk-8-and-11-using-sdkman/

Installez d'abord SDKMAN: https://sdkman.io/install puis ...

  1. Installez Oracle JDK 8 avec: sdk install Java 8.0.181-Oracle
  2. Installez OpenJDK 11 avec: sdk install Java 11.0.0-open

Commuter:

  • Passez à JDK 8 avec sdk use Java 8.0.181-Oracle
  • Passez à JDK 11 avec sdk use Java 11.0.0-open

Pour définir une valeur par défaut:

  • JDK 8 avec sdk default Java 8.0.181-Oracle par défaut
  • JDK 11 avec sdk default Java 11.0.0-open par défaut
0
Wim Deblauwe