Comment installer OpenJDK Java 11 sur Mac OSX permettant la commutation 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 nouvelle version. Actuellement, j'ai téléchargé le goudron.gz et l'a placé sur mon chemin, mais qui est difficile à maintenir.
les seules autres installations que j'ai trouvé qui font plus de choses automatiquement sont L'installation D'Oracle via Homebrew cask, mais c'est le JDK commercial et je veux l'open-source un!
brew cask info java
Affiche:
java: 11,28: 55eed80b163941c8885ad9298e6d786a https://www.oracle.com/technetwork/java/javase/overview/index.html
qui est L'Oracle JDK et non OpenJDK, voir: https://discourse.brew.sh/t/how-to-install-openjdk-with-brew/712
suivre les directives d'une question plus ancienne (Mac OS X et plusieurs versions Java) est périmé et me donne la mauvaise version -- Oracle pas OpenJDK.
Remarque: cette question est intentionnellement écrite et l'auteur y répond ( Questions Auxquelles On Répond Par Soi-Même), de sorte que les réponses idiomatiques aux sujets couramment demandés sont présents dans SO.
3 réponses
remarque:ces solutions fonctionnent pour votre cas spécifique de Java 11 OpenJDK mais aussi pour toute autre version Java antérieure couverte par les gestionnaires de version listés. Cela inclut les JDK alternatifs D'OpenJDK, Oracle, IBM, Azul, Graal et plus. Travail facile avec Java 7, Java 8, Java 9, Java 10, et maintenant 11.
vous avez quelques options pour effectuer l'installation et gérer la commutation. L'Installation peut être effectuée par Homebew, SDKMAN,Jabba, ou une installation manuelle. Commutation peut être effectuée par JEnv, SDKMAN, ou Jabba.
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, c'est que l'emplacement du JDK peut être placé dans un emplacement normalisé pour Mac OSX.
Install with SDKMAN
il s'agit d'un modèle simple en ce qu'il gère à la fois l'installation et la commutation 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 à l'aide de Jabba
c'est aussi un modèle simple en ce sens que la commutation d'installation et de version est gérée par le même outil. Installation sont faites 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 à partir dehttp://jdk.java.net/11/
Réactivation de l'OpenJDK goudron, et de la place de la résultante
jdk-11.jdk
dossier dans votre/Library/Java/JavaVirtualMachines/
dossier puisqu'il s'agit de l'emplacement standard et prévu de JDK installe. Vous pouvez également installer où vous voulez dans la réalité.
Installer avec Homebrew
<pas encore disponible pour OpenJDK 11, bientôt!AdoptOpenJdk>
pour les autres versions de Java:
installer Homebrew si vous ne l'avez pas déjà.
Ajouter les fûts appuyez sur:
brew tap homebrew/cask-versions
rechercher 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 D'Oracle de Java 11, et non OpenJDK 11.
installez une version spécifique du JDK telle que
java8
,java10
oujava
pour les 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 aussi installer Systèmes Azul Java Zoulou certifié construit de OpenJDK en suivant le instructions sur leur site.
Zulu® est une construction certifiée D'OpenJDK qui est entièrement conforme à la norme Java SE. Zulu est 100% open source et librement téléchargeable. Maintenant, 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 sur le calendrier de mise à niveau.
Où est mon JDK?!?!
pour trouver des localisations de Java JDK déjà installées aux localisations du système par défaut, utilisez:
/usr/libexec/java_home -V
ceci est utile lors de L'utilisation D'outils comme JEnv, ou l'ajout d'un installer sur SDKMAN, ou relier un système JDK dans Jabba -- et vous devez savoir où les trouver.
si vous avez besoin de trouver JDK installé par d'autres outils, vérifiez ces emplacements:
- SDKMAN installe
~/.sdkman/candidates/java/
- Jabba installe à
~/.jabba/jdk
passage d'une version avec JEnv
JEnv s'attend à ce que les JDK Java existent déjà sur la machine et peuvent être dans n'importe quel endroit. Typiquement, vous trouverez Java JDK installé 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 qui est pratique lorsque certains projets nécessitent des versions différentes que d'autres.
Install JEnv if you have not already, instructions on the site http://www.jenv.be/ pour l'installation manuelle ou l'utilisation de la tire.
ajouter N'importe quelle version Java à JEnv (ajuster le répertoire si vous avez placé ailleurs):
jenv add /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
Définissez votre version globale en utilisant cette commande:
jenv global 11
vous pouvez également ajouter d'autres versions existantes en utilisant jenv add
d'une manière similaire, et énumérer ceux 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 toutes les versions Java (Oracle, OpenJDK, d'autres) à tout moment, soit pour l'ensemble du système, des coquillages, ou par répertoire local.
pour aider à gérer JAVA_HOME
en utilisant JEnv vous pouvez ajouter le Exporter plugin de faire cela pour vous.
$ jenv enable-plugin export
You may restart your session to activate jenv export plugin echo export plugin activated
le plugin d'exportation ne peut pas ajuster JAVA_HOME
si elle est déjà définie, vous devrez peut-être effacer cette variable dans votre profil pour qu'elle puisse être gérée par JEnv.
vous pouvez aussi utiliser jenv exec <command> <parms...>
pour exécuter des commandes uniques avec JAVA_HOME
et PATH
défini correctement pour cette commande, 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 son propre répertoire, qui est typiquement ~/.sdkman/candidates/java
. SDKMAN permet de définir une version par défaut globale, et une version spécifique à la Shell.
Installer SDKMAN de https://sdkman.io/install
Install Java 11 using SDKMAN:
sdk install java 11.0.0-open
Faire 11 la version par défaut:
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 en utilisant la commande list:
sdk list java
et installer des versions supplémentaires, comme JDK 8:
sdk install java 8.0.181-oracle
SDKMAN peut travailler avec des versions déjà installées. Il suffit de faire 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 guide D'utilisation de SDKMAN et autres SDK il peut installer et à gérer.
SDKMAN gérera automatiquement votre PATH
et JAVA_HOME
pour vous aussi vous changer 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 son propre arborescence de répertoires, qui est typiquement ~/.jabba/jdk
.
installez Jabba en suivant le instructions sur la page d'accueil.
Liste disponible JDK's
jabba ls-remote
Install Java JDK 11
jabba install openjdk@1.11.0
Utilisation:
jabba use openjdk@1.11.0
vous pouvez également alias les noms de version, Lien vers JDK déjà installé, et trouver un mélange de JDK intéressants tels que GraalVM, Adopt JDK, IBM JDK, et plus encore. La complète guide d'utilisation est disponible sur la page d'accueil.
Jabba gérera automatiquement votre PATH
et JAVA_HOME
pour vous que vous changer de version.
une Autre alternative est d'utiliser SDKMAN! Voir https://wimdeblauwe.wordpress.com/2018/09/26/switching-between-jdk-8-and-11-using-sdkman/
tout d'Abord installer SDKMAN: https://sdkman.io/install et puis...
- Installer Oracle JDK 8 avec:
sdk install java 8.0.181-oracle
- Install OpenJDK 11 with:
sdk install java 11.0.0-open
switch:
- passer à 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:
- 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
IMHO, il n'est pas nécessaire d'installer toutes les applications/paquets supplémentaires.
vérifiez les versions disponibles en utilisant 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, invoquez la commande comme ci-dessous:
> /usr/libexec/java_home -v 1.8.0_181
/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
pour choisir le Java SE 8 D'Oracle, vous devez 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