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


Je veux installer OpenJDK Java 11 sur Mac OSX et le faire fonctionner avec d'autres JDK car il s'agit d'une version plus récente. Actuellement, j'ai téléchargé le goudron.gz et l'a 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 Oracle via Homebrew cask, mais c'est le JDK commercial et je veux l'open-source!

brew cask info java

Montre:

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

Qui est le JDK Oracle et non 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 Java) est obsolète et me donne la mauvaise version-Oracle pas OpenJDK.

Remarque: cette question est intentionnellement écrite et répondue par l'auteur ( Questions auto-répondues ), de sorte que les réponses idiomatiques aux sujets fréquemment demandés sont présentes dans SO.

Author: Jayson Minard, 2018-09-26

3 answers

Remarque: Ces solutions fonctionnent pour votre cas spécifique de Java 11 OpenJDK mais fonctionnent également pour toute autre version Java précédente couverte par les gestionnaires de versions répertoriés. Cela inclut les JDK alternatifs d'OpenJDK, Oracle, IBM, Azul, Graal et plus encore. Travaillez facilement avec Java 7, Java 8, Java 9, Java 10 et maintenant 11.

Vous avez quelques options sur la façon de faire l'installation ainsi que de gérer la commutation. L'installation peut être effectuée par Homebew, SDKMAN, Jabba, ou une installation manuelle. La commutation peut être effectuée par JEnv, Il s'agit d'un logiciel de gestion de fichiers.


Installation

Tout d'abord, installez Java en utilisant la méthode que vous préférez, y compris Homebrew, SDKMAN ou une installation manuelle du tar.fichier gz. Les avantages d'une installation manuelle est que l'emplacement du JDK peut être placé dans un emplacement standardisé pour Mac OSX.

Installer avec SDKMAN

C'est un modèle simple en ce qu'il gère à la fois l'installation et le changement de version, avec une mise en garde qu'il installe le JDK dans un répertoire non standard.

Voir ci-dessous "Installation et commutation de versions avec SDKMAN">

Installer en utilisant Jabba

Il s'agit également d'un modèle simple dans la mesure où l'installation et le changement de version sont gérés par le même outil. Les installations sont effectuées dans un répertoire non standard.

Voir ci-dessous " Installation et commutation de versions avec Jabba">

Installer manuellement à partir de la page de téléchargement d'OpenJDK:

  1. Télécharger OpenJDK 11 pour Mac OSX depuis http://jdk.java.net/11/

  2. Désarchivez le tar OpenJDK et placez le dossier jdk-11.jdk résultant dans votre dossier /Library/Java/JavaVirtualMachines/ car il s'agit de l'emplacement standard et attendu des installations JDK. Vous pouvez également installer où vous voulez dans la réalité.

Installer avec Homebrew

Pas encore disponible pour OpenJDK 11, bientôt! à partir de AdoptOpenJdk>

Pour les autres versions de Java:

  1. Installer Homebrew si vous ne l'avez pas déjà.

  2. Ajouter le robinet de fûts:

    brew tap homebrew/cask-versions
    
  3. Recherchez les versions installables:

    brew search java
    
  4. Vérifier les détails sur la version qui sera installée:

    brew cask info java
    

    Notez que la version actuelle est la version commerciale Oracle de Java 11, et non OpenJDK 11.

  5. Installer une version spécifique du JDK comme java8, java10 ou java pour le courant:

    brew cask install java
    

Et ceux-ci seront installés dans /Library/Java/JavaVirtualMachines/ qui est l'emplacement traditionnel attendu sur Mac OSX.

Autres options d'installation:

, Vous pouvez également installer Azul Systèmes Java Zoulou certifié construit de OpenJDK par suite de la les instructions sur leur site.

Zulu® est un construction certifiée d'OpenJDK entièrement conforme à la norme Java SE. Zulu est 100% open source et téléchargeable gratuitement. Désormais, les développeurs Java, les administrateurs système et les utilisateurs finaux peuvent profiter de tous les avantages de Java open source avec une flexibilité de déploiement et un contrôle du calendrier de mise à niveau.


Où est mon JDK?!?!

Pour trouver les emplacements des JDK Java précédemment installés dans les emplacements système par défaut, utilisez:

/usr/libexec/java_home -V

Ceci est utile lorsque en utilisant des outils comme JEnv, ou en ajoutant une installation locale à SDKMAN, ou en reliant un JDK système dans Jabba -- et vous devez savoir où les trouver.

Si vous avez besoin de trouver des JDK installés par d'autres outils, vérifiez ces emplacements:

  • SDKMAN s'installe sur ~/.sdkman/candidates/java/
  • Jabba installe à ~/.jabba/jdk

Changer de version avec JEnv

Jen s'attend à ce que les JDK Java existent déjà sur la machine et puissent être dans n'importe quel emplacement. Généralement vous trouverez les JDK Java installés dans /Library/Java/JavaVirtualMachines/. JEnv permet de définir la version globale de Java, une pour le shell actuel, et une version locale par répertoire, ce qui est pratique lorsque certains projets nécessitent des versions différentes de celles d'autres.

  1. Installez JEnv si vous ne l'avez pas déjà fait, instructions sur le site http://www.jenv.be / pour une installation manuelle ou à l'aide de Homebrew.

  2. Ajoutez n'importe quelle version Java à JEnv (ajustez le répertoire si vous avez placé ceci ailleurs):

    jenv add /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
    
  3. Définissez votre version globale à l'aide de cette commande:

    jenv global 11
    

Vous pouvez également ajouter d'autres versions existantes en utilisant jenv add de la même manière, et lister celles qui sont disponibles. Par exemple Java 8:

jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home 
jenv versions

Voir le JEnv docs pour plus de commandes. Vous pouvez maintenant basculer entre n'importe quelle version de Java (Oracle, OpenJDK, autre) à tout moment, que ce soit pour l'ensemble du système, pour les shells ou par répertoire local.

Pour aider gérer JAVA_HOME tout en utilisant JEnv, vous pouvez ajouter leplugin d'exportation pour le faire pour vous.

$ jenv enable-plugin export
  You may restart your session to activate jenv export plugin echo export plugin activated

Le plugin d'exportation peut ne pas ajuster JAVA_HOME s'il est déjà défini, vous devrez donc effacer cette variable dans votre profil afin qu'elle puisse être gérée par JEnv.

Vous pouvez également utiliser jenv exec <command> <parms...> pour exécuter des commandes uniques avec JAVA_HOME et PATH définis correctement pour cette commande, ce qui pourrait inclure l'ouverture d'un autre shell.


Installation et commutation de versions avec SDKMAN

SDKMAN c'est un peu différent et gère à la fois l'installation et la commutation. SDKMAN place également les JDK installés dans sa propre arborescence de répertoires, qui est généralement ~/.sdkman/candidates/java. SDKMAN permet de définir une version globale par défaut et une version spécifique au shell actuel.

  1. Installer SDKMAN à partir de https://sdkman.io/install

  2. Installer Java 11 en utilisant SDKMAN:

    sdk install java 11.0.0-open 
    
  3. Faire 11 la valeur par défaut version:

    sdk default java 11.0.0-open
    

    , Ou passer à 11 pour la session:

    sdk use java 11.0.0-open
    

Vous pouvez lister les versions disponibles pour l'installation à l'aide de la commande list:

sdk list java

Et installer des versions supplémentaires, telles que JDK 8:

sdk install java 8.0.181-oracle

SDKMAN peut fonctionner avec des versions existantes déjà installées. Faites simplement une installation locale en donnant votre propre étiquette de version et l'emplacement du JDK:

sdk install java my-local-11 /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home

Et l'utiliser librement:

sdk use java my-local-11

Plus d'informations sont disponibles dans le SDKMAN Guide d'utilisation avec d'autres SDK il peut installer et gérer.

SDKMAN gérera automatiquement vos PATH et JAVA_HOME pour vous lorsque vous changez de version.

Installation et commutation de versions avec Jabba

Jabba gère également l'installer et de la commutation. Jabba place également les JDK installés dans sa propre arborescence de répertoires, qui est généralement ~/.jabba/jdk.

  1. Installez Jabba en suivant lesinstructions sur la page d'accueil .

  2. Liste des JDK disponibles

    jabba ls-remote
    
  3. J'ai besoin de plus de temps pour installer Java JDK 11]}
    jabba install [email protected]
    
  4. Utilisez-le:

    jabba use [email protected]
    

Vous pouvez également alias les noms de version, lien vers les JDK existants déjà installés, et trouver un mélange de JDK intéressants tels que GraalVM, Adopt JDK, IBM JDK, et plus encore. Le guide d'utilisation complet est également disponible sur la page d'accueil.

Jabba sera automatiquement gérez vos PATH et JAVA_HOME pour vous lorsque vous changez de version.

 12
Author: Jayson Minard, 2018-09-29 06:43:57

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

Première installation SDKMAN: https://sdkman.io/install et puis...

  1. Installer Oracle JDK 8 avec: sdk install java 8.0.181-oracle
  2. Installer OpenJDK 11 avec: sdk install java 11.0.0-open

Pour changer:

  • Passer à JDK 8 avec sdk use java 8.0.181-oracle
  • Passer à JDK 11 avec sdk use java 11.0.0-open

Pour définir un par défaut:

  • 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
 0
Author: Wim Deblauwe, 2018-09-26 19:36:05

À mon HUMBLE avis, Il n'est pas nécessaire d'installer toutes les applications/packages supplémentaires.

Vérifiez les versions disponibles à l'aide de la commande:

> /usr/libexec/java_home -V
Matching Java Virtual Machines (8):
    11, x86_64: "Java SE 11-ea" /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
    10.0.2, x86_64: "Java SE 10.0.2"    /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
    9.0.1, x86_64:  "Java SE 9.0.1" /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
    1.8.0_181-zulu-8.31.0.1, x86_64:    "Zulu 8"    /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
    1.8.0_151, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
    1.7.0_80, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
    1.6.0_65-b14-468, x86_64:   "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-468, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Maintenant, si vous voulez choisir Azul JDK 8 dans la liste ci-dessus, et NON Java SE 8 d'Oracle, appelez la commande comme ci-dessous:

> /usr/libexec/java_home -v 1.8.0_181
/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home

Pour choisir Java SE 8 d'Oracle, vous invoquer la commande:

> /usr/libexec/java_home -v 1.8.0_151
/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home

Comme vous pouvez le voir, le numéro de version fourni doit être l'ensemble unique de chaînes: 1.8.0_181 vs 1.8.0_151

 0
Author: Ranganath Samudrala, 2018-10-05 11:53:22