Je veux installer OpenJDK Java 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 tar.gz et l'ai placé sur mon chemin mais c'est difficile à maintenir.
La seule autre installation que j'ai trouvée qui fait plus de choses automatiquement est l'installation via Homebrew cask. Il ne ressemble qu'à la version actuelle:
brew cask info java
Spectacles:
java: 13,33: 5b8a42f3905b406298b72d750b6919f6
https://openjdk.java.net/
Je peux donc l'installer à partir de là, mais alors quoi? Suis-je bloqué uniquement avec la nouvelle version?
Réponses:
Remarque: Ces solutions fonctionnent pour différentes versions de Java, y compris Java 8 et le nouveau Java 13, et pour toute autre version Java précédente couverte par les gestionnaires de versions répertoriés. Cela inclut des JDK alternatifs d'OpenJDK, Oracle, IBM, Azul, Amazon Correto, Graal et plus encore. Travaillez facilement avec Java 7, Java 8, Java 9, Java 10, Java 11, Java 12 et Java 13!
Vous avez quelques options sur la façon de faire l'installation ainsi que de gérer la commutation JDK. L'installation peut être effectuée par Homebrew, SDKMAN , Jabba ou une installation manuelle. La commutation peut être effectuée par JEnv , SDKMAN , Jabba ou manuellement en définissant
JAVA_HOME
. Tous ces éléments sont décrits ci-dessous.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 fichier tar.gz. Les avantages d'une installation manuelle sont que l'emplacement du JDK peut être placé dans un emplacement standardisé pour Mac OSX.
Installer avec SDKMAN
Il s'agit d'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 changement de versions avec SDKMAN" >
Installer avec 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 "Installer et changer de version avec Jabba" >
Installez manuellement depuis la page de téléchargement d'OpenJDK:
Téléchargez OpenJDK pour Mac OSX depuis http://jdk.java.net/ (par exemple Java 13 )
Désarchivez le tar OpenJDK et placez le dossier résultant (c'est-à-dire
jdk-13.jdk
) dans votre/Library/Java/JavaVirtualMachines/
dossier car il s'agit de l'emplacement standard et attendu des installations JDK. Vous pouvez également installer où vous voulez en réalité.Installer avec Homebrew
La version de Java disponible dans Homebrew Cask avant le 3 octobre 2018 était en effet la JVM Oracle. Maintenant, cependant, il a maintenant été mis à jour vers OpenJDK. Assurez-vous de mettre à jour Homebrew et vous verrez alors la dernière version disponible pour l'installation.
installez Homebrew si vous ne l'avez pas déjà fait. Assurez-vous qu'il est mis à jour:
Ajoutez le robinet de fûts, si vous ne l'avez pas déjà fait (ou si vous ne voyez plus d'anciennes versions de Java à l'étape 3):
et pour les versions AdoptOpenJDK , ajoutez ce robinet:
Ces fûts changent souvent leurs versions Java, et il pourrait y avoir d'autres robinets avec des versions Java supplémentaires.
Recherchez les versions installables:
ou pour les versions AdoptOpenJDK:
Vérifiez les détails de la version qui sera installée:
ou pour la version AdoptOpenJDK:
Installer une version spécifique du JDK tels que
java11
,adoptopenjdk8
ou toutjava
ouadoptopenjdk
pour le courant. Par exemple:Vous pouvez également utiliser le chemin d'accès complet aux anciennes versions:
Et ceux-ci seront installés dans
/Library/Java/JavaVirtualMachines/
lequel est l'emplacement traditionnel attendu sur Mac OSX.Autres options d'installation:
Quelques autres versions d'OpenJDK sont:
Les versions d' Azul Systems certifiées Java Zulu d'OpenJDK peuvent être installées en suivant les instructions sur leur site .
Les builds Amazon Correto OpenJDK ont un package d'installation facile à utiliser pour la version 8 ou la version 11 (d'autres versions arrivent) et s'installe dans le
/Library/Java/JavaVirtualMachines/
répertoirestandardsur Mac OSX.Où est mon JDK?!?!
Pour rechercher les emplacements des JDK Java précédemment installés installés aux emplacements système par défaut, utilisez:
Vous pouvez également signaler uniquement l'emplacement d'une version Java spécifique à l'aide de
-v
. Par exemple pour Java 13:Connaître l'emplacement des JDK installés est également utile lorsque vous utilisez des outils comme JEnv, ou ajoutez une installation locale à SDKMAN, ou liez un JDK système dans Jabba - et vous devez savoir où les trouver.
Si vous devez trouver des JDK installés par d'autres outils, vérifiez ces emplacements:
~/.sdkman/candidates/java/
~/.jabba/jdk
Changer de version manuellement
L'exécutable Java est un wrapper qui utilisera le JDK configuré
JAVA_HOME
, vous pouvez donc le modifier pour changer également le JDK utilisé.Par exemple, si vous avez installé ou décompressé JDK 13,
/Library/Java/JavaVirtualMachines/jdk-13.jdk
s'il s'agit du numéro de version le plus élevé, il devrait déjà être le numéro par défaut, sinon vous pouvez simplement définir:Et maintenant, quel que soit l'exécutable Java dans le chemin, il le verra et utilisera le JDK correct.
L'utilisation de l'
/usr/libexec/java_home
utilitaire tel que décrit précédemment vous aide à créer des alias ou à exécuter des commandes pour modifier les versions de Java en identifiant les emplacements des différentes installations JDK. Par exemple, créer des alias de shell dans.profile
ou.bash_profile
pour changerJAVA_HOME
pour vous:Ensuite, pour changer de version, utilisez simplement l'alias.
Bien sûr, le réglage
JAVA_HOME
manuel fonctionne aussi!Changer de version avec JEnv
JEnv s'attend à ce que les JDK Java existent déjà sur la machine et puissent être n'importe où. En général, 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 des 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 en utilisant Homebrew.
Ajoutez n'importe quelle version Java à JEnv ( ajustez le répertoire si vous l'avez placé ailleurs ):
Définissez votre version globale à l'aide de cette commande:
Vous pouvez également ajouter d'autres versions existantes en utilisant
jenv add
de manière similaire et répertorier celles qui sont disponibles. Par exemple Java 8:Voir les documents JEnv pour plus de commandes. Vous pouvez désormais basculer entre n'importe quelle version Java (Oracle, OpenJDK, autre) à tout moment, soit pour l'ensemble du système, pour les shells, soit par répertoire local.
Pour aider à gérer
JAVA_HOME
tout en utilisant JEnv, vous pouvez ajouter le plugin d'exportation pour le faire pour vous.Le plugin d'exportation peut ne pas s'ajuster
JAVA_HOME
s'il est déjà défini, vous devrez donc peut-être 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 avecJAVA_HOME
etPATH
définir correctement pour cette commande, ce qui pourrait inclure l'ouverture d'un autre shell.Installation et changement de version avec SDKMAN
SDKMAN 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.Installez SDKMAN à partir de https://sdkman.io/install
Répertoriez les versions Java disponibles pour vous assurer que vous connaissez l'ID de version
Installez l'une de ces versions, par exemple, Java 13:
Faites de 13 la version par défaut:
Ou passez à 13 pour la session:
Lorsque vous répertoriez les versions disponibles pour l'installation à l'aide de la commande list, vous verrez une grande variété de distributions de Java:
Et installez des versions supplémentaires, telles que JDK 8:
SDKMAN peut fonctionner avec des versions existantes déjà installées. Effectuez simplement une installation locale en donnant votre propre étiquette de version et l'emplacement du JDK:
Et utilisez-le librement:
Plus d'informations sont disponibles dans le Guide d'utilisation du SDKMAN avec d' autres SDK qu'il peut installer et gérer.
SDKMAN gérera automatiquement votre
PATH
etJAVA_HOME
pour vous lorsque vous changez de version.Installer et changer de version avec Jabba
Jabba gère également à la fois l'installation et 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 les instructions de la page d'accueil .
Liste des JDK disponibles
Installer Java JDK 12
Utilise le:
Vous pouvez également alias des noms de version, créer un lien vers des JDK existants déjà installés et trouver un mélange de JDK intéressants tels que GraalVM, Adopt JDK, IBM JDK, etc. Le guide d'utilisation complet est également disponible sur la page d'accueil.
Jabba gérera automatiquement votre
PATH
etJAVA_HOME
pour vous lorsque vous changez de version.la source
JAVA_HOME
afin de sélectionner une version spécifique, quelque chose commeexport JAVA_HOME=$(/usr/libexec/java_home -v <version>)
dans votre.bash_profile
JAVA_HOME
défini manuellement et ils le gèrent eux-mêmes. JEnv ne l'ajustera certainement pas s'il a été défini précédemment, je ne suis pas sûr de Jabba et SDKMAN mais ils gèreront normalement ce paramètre. Seule une installation manuelle sans changement de version ne doit jamais définir cette valeur directement.Voilà comment je l'ai fait.
Étape 1: installer Java 11
Vous pouvez télécharger Java 11 dmg pour mac 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.
Étape 3: Modifier .bash_profile
Étape 4: ajoutez 11.0.1 par défaut. (Ajoutez la ligne ci-dessous au fichier bash_profile).
pour passer à n'importe quelle version
Maintenant, appuyez sur CTRL + X pour quitter le bash. Appuyez sur «Y» pour enregistrer les modifications.
Étape 5: recharger bash_profile
Étape 6: confirmer la version actuelle de Java
la source
Commutation manuelle de la version par défaut du système sans outils tiers:
Comme détaillé dans cette ancienne réponse , sur macOS
/usr/bin/java
est un outil wrapper qui utilisera la version Java pointée parJAVA_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 élevée. Il détermine les versions en regardantContents/Info.plist
sous chaque package.Armé de ces connaissances, vous pouvez:
Info.plist
versions que vous ne souhaitez pas utiliser par défaut (ce fichier n'est pas utilisé par le runtime Java lui-même).$JAVA_HOME
Je viens de vérifier que cela est toujours vrai avec OpenJDK et Mojave.
Sur un tout nouveau système, aucune version Java n'est installée:
Annulez cela, téléchargez OpenJDK 11 & 12ea sur https://jdk.java.net ; installez OpenJDK11:
Le système java a maintenant 11 ans:
Installez OpenJDK12 (accès anticipé pour le moment):
Le système java a maintenant 12 ans:
Maintenant, «cachons» OpenJDK 12 à l'encapsuleur java du système:
Le système java revient à 11:
Et vous pouvez toujours utiliser la version 12 ponctuellement en définissant manuellement
JAVA_HOME
:la source
Si plusieurs versions sont installées sur votre ordinateur, ajoutez ce qui suit dans le profil bash:
Et ajoutez les alias suivants:
Et peut passer à la version requise en utilisant l'alias:
Dans le terminal:
~ >> java7 export JAVA_HOME=$JAVA_7_HOME
la source
Une autre alternative utilise 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 ...
sdk install java 8.0.181-oracle
sdk install java 11.0.0-open
Commuter:
sdk use java 8.0.181-oracle
sdk use java 11.0.0-open
Pour définir une valeur par défaut:
sdk default java 8.0.181-oracle
sdk default java 11.0.0-open
la source
Avec Homebrew et jenv:
Hypothèse: machine Mac et vous avez déjà installé homebrew.
Installez le tonneau:
Pour installer le dernier java:
Pour installer java 8:
Pour installer java 9:
Si vous souhaitez installer / gérer plusieurs versions, vous pouvez utiliser 'jenv':
Installez et configurez jenv:
Ajoutez le java installé à jenv:
Pour voir tous les java installés:
La commande ci-dessus donnera la liste des java installés:
Configurez la version java que vous souhaitez utiliser:
la source
Error: caskroom/cask was moved. Tap homebrew/cask-cask instead
, puisfatal: repository 'https://github.com/Homebrew/homebrew-cask-cask/' not found
À 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:
Maintenant, si vous souhaitez choisir Azul JDK 8 dans la liste ci-dessus, et NON Java SE 8 d'Oracle, appelez la commande comme ci-dessous:
Pour choisir Java SE 8 d'Oracle, vous devez invoquer la commande:
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
la source
1.8.0_181-zulu-8.31.0.1
? ou s'agit-il d'une correspondance partielle?JAVA_HOME
. La commutation manuelle à l'aide de ces commandes est traitée dans mon autre réponse.