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.
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:
Télécharger OpenJDK 11 pour Mac OSX depuis http://jdk.java.net/11/
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:
Installer Homebrew si vous ne l'avez pas déjà.
-
Ajouter le robinet de fûts:
brew tap homebrew/cask-versions
-
Recherchez les versions installables:
brew search java
-
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.
-
Installer une version spécifique du JDK comme
java8
,java10
oujava
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.
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.
-
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
-
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.
Installer SDKMAN à partir de https://sdkman.io/install
-
Installer Java 11 en utilisant SDKMAN:
sdk install java 11.0.0-open
-
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
.
Installez Jabba en suivant lesinstructions sur la page d'accueil .
-
Liste des JDK disponibles
jabba ls-remote
-
J'ai besoin de plus de temps pour installer Java JDK 11]}
jabba install [email protected]
-
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.
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...
- Installer Oracle JDK 8 avec:
sdk install java 8.0.181-oracle
- 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
À 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