Comment puis-je installer un Java supplémentaire sur MacOS? J'ai installé jdk8 et cela fonctionne bien. mais maintenant, j’ai besoin d’une installation jdk7 à des fins de développement. En essayant d'installer l'ancienne version via un fichier DMG, je reçois un avertissement indiquant qu'une version plus récente de Java est déjà installée et que le programme d'installation se ferme.
/usr/libexec/Java_home -verbose
Matching Java Virtual Machines (1):
1.8.0_20, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
Comment installer jdk7 en plus de celui-ci?
Merci
Dakky
Le moyen le plus propre de gérer plusieurs versions de Java sur Mac consiste à utiliser Homebrew
.
Et dans Homebrew
, utilisez:
homebrew-cask
pour installer les versions de Javajenv
pour gérer les versions installées de JavaComme indiqué sur http://hanxue-it.blogspot.ch/2014/05/installing-Java-8-managing-multiple.html , voici les étapes à suivre.
Ajoutez le homebrew/cask-versions
tap à l’homebrew en utilisant:
brew tap homebrew/cask-versions
Ensuite, vous pouvez regarder toutes les versions disponibles:
brew search Java
Ensuite, vous pouvez installer la ou les versions que vous préférez:
brew cask install Java7
brew cask install Java6
Et ajoutez-les pour qu'ils soient gérés par jenv comme d'habitude.
jenv add <javaVersionPathHere>
Je pense que c'est le moyen le plus simple et le plus simple de s'y prendre.
Une autre chose importante à noter, comme indiqué dans Mac OS X 10.6.7 Java Path actuel JDK déroutant :
Pour différents types de JDK ou d'installations, vous aurez différents les chemins
Vous pouvez vérifier les chemins des versions installées à l'aide de
/usr/libexec/Java_home -V
, voir Comment puis-je vérifier si le JDK Java est installé sur Mac?Sur Mac OS X Mavericks, j'ai constaté que:
1) JRE intégré par défaut:
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
2) JDK téléchargés chez Apple:
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/
3) JDK téléchargés à partir d'Oracle:
/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home
Désinstallez jdk8, installez jdk7, puis réinstallez jdk8.
Mon approche pour basculer entre eux (dans .profile):
export Java_7_HOME=$(/usr/libexec/Java_home -v1.7)
export Java_8_HOME=$(/usr/libexec/Java_home -v1.8)
export Java_9_HOME=$(/usr/libexec/Java_home -v9)
alias Java7='export Java_HOME=$Java_7_HOME'
alias Java8='export Java_HOME=$Java_8_HOME'
alias Java9='export Java_HOME=$Java_9_HOME'
#default Java8
export Java_HOME=$Java_8_HOME
Ensuite, vous pouvez simplement taper Java7
ou Java8
dans un terminal pour changer de version.
(edit: mis à jour pour ajouter l'amélioration Dylans pour Java 9)
SDKMAN! est un excellent outil pour utiliser plusieurs versions de Java, Gradle, Groovy, Kotlin et d’autres outils JVM sous Mac OS. La documentation d'installation et d'utilisation se trouve clairement sur le site principal.
(Je n'ai aucune affiliation, juste un utilisateur heureux).
À titre d'exemple, si je tape ce qui suit dans une fenêtre de terminal, il existe une liste des versions de SDK Java disponibles (modifiées par souci de concision):
$ sdk list Java
Available Java Versions
+ 9ea170
> + 8u131
7u141-zulu
Ici, +
indique que la version est installée. >
indique quelle version est actuellement utilisée. Pour installer une version:
$ sdk install Java 7u141-zulu
Pour utiliser une version dans cette fenêtre de terminal:
$ sdk use Java 9ea170
Comme indiqué sur le site Web Alors commençons par installer jEnv
Exécuter ceci dans le terminal
brew install https://raw.github.com/gcuisinier/jenv/homebrew/jenv.rb
Ajouter jEnv au profil bash
if which jenv > /dev/null; then eval "$(jenv init -)"; fi
Lors de la première installation, aucun fichier JDK n’est associé à jEnv.
Par exemple, je viens d'installer JDK 8 mais jEnv ne le sait pas. Pour vérifier les versions de Java sur jEnv
Pour l'instant, il ne trouve que la version Java (jre) sur le système. Le *
indique la version actuellement sélectionnée. Contrairement à rvm et à rbenv, jEnv ne peut pas installer JDK pour vous. Vous devez installer JDK manuellement à partir du site Web Oracle.
Installez JDK 6 à partir du site Web Apple. Cela installera Java dans /System/Library/Java/JavaVirtualMachines/
. La raison pour laquelle nous installons Java 6 à partir du site Web d'Apple est que Sun n'a pas mis au point JDK 6 pour MAC. Apple a donc créé/modifié sa propre version de déploiement.
De même, installez JDK7 et JDK8.
Ajoutez des JDK à jEnv.
JDK 6:
Vérifiez les versions de Java installées à l'aide de jenv
Nous avons donc maintenant 3 versions de Java sur notre système. Pour définir une version par défaut, utilisez la commande
jenv local <jenv version>
Ex - Je voulais que Jdk 1.6 lance IntelliJ
jenv local Oracle64-1.6.0.65
vérifier la version Java
C'est tout. Nous avons maintenant plusieurs versions de Java et nous pouvons basculer facilement entre elles. jEnv possède également d'autres fonctionnalités, telles que des wrappers pour Gradle, Ant, Maven, etc., et la possibilité de définir les options de la machine virtuelle Java globalement ou localement. Consultez la documentation pour plus d'informations.
Je trouve ce gestionnaire de versions Java appelé Jabba récemment et son utilisation est très similaire aux gestionnaires de versions d’autres langages tels que rvm (Ruby), nvm (nœud), pyenv (python), etc. peut être utilisé sur Mac.
Après l’installation, il créera un répertoire dans ~/.jabba pour mettre toutes les versions de Java que vous installez. Il "Prend en charge l’installation d’Oracle JDK (par défaut)/Serveur JRE, Zulu OpenJDK (depuis la version 0.3.0), IBM SDK, Java Technology Edition (depuis la version 0.6.0) et à partir d’URL personnalisées.".
L'utilisation de base est indiquée sur leur Github. Un résumé rapide pour commencer:
curl -sL https://github.com/shyiko/jabba/raw/master/install.sh | bash && . ~/.jabba/jabba.sh
# install Oracle JDK
jabba install 1.8 # "jabba use 1.8" will be called automatically
jabba install 1.7 # "jabba use 1.7" will be called automatically
# list all installed JDK's
jabba ls
# switch to a different version of JDK
jabba use 1.8
J'utilise Mac OS X 10.9.5. C’est ainsi que je gère plusieurs JDK/JRE sur ma machine lorsque j’ai besoin d’une version pour exécuter l’application A et d’utiliser une autre version pour l’application B.
J'ai créé le script suivant après avoir obtenu de l'aide en ligne.
#!bin/sh
function setjdk() {
if [ $# -ne 0 ]; then
removeFromPath '/Library/Java/JavaVirtualMachines/'
if [ -n "${Java_HOME+x}" ]; then
removeFromPath $Java_HOME
fi
export Java_HOME=/Library/Java/JavaVirtualMachines/$1/Contents/Home
export PATH=$Java_HOME/bin:$PATH
fi
}
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
#setjdk jdk1.8.0_60.jdk
setjdk jdk1.7.0_15.jdk
Je mets le script ci-dessus dans le fichier .profile. Ouvrez simplement le terminal, tapez vi .profile, ajoutez le script avec l’extrait ci-dessus et enregistrez-le. Une fois que vous avez tapé source .profile
, votre script de profil sera exécuté sans que vous ayez à redémarrer le terminal. Maintenant, tapez Java -version
, la version actuelle devrait être 1.7. Si vous avez l'intention de le changer en 1.8, commentez la ligne setjdk jdk1.7.0_15.jdk
et décommentez la ligne setjdk jdk1.8.0_60.jdk
. Enregistrez le script et réexécutez-le avec la commande source. J'utilise ce mécanisme pour gérer plusieurs versions de JDK/JRE lorsque je dois compiler 2 projets Maven différents nécessitant différentes versions de Java.
Jenv sur Mac Sierra:
si cela ne fonctionne pas après l'installation, faites ce correctif pour ajouter l'exécutable Java au chemin
export PATH="$HOME/.jenv/shims:$PATH"
même si eval "$(jenv init -)"
pouvait faire ce travail. La raison en est que le dossier/bin n’est plus présent comme décrit dans sa page d’accueil, mais le dossier shim est utilisé comme/bin.
which Java
peut imprimer/Library/...which Java
vous donne finalement:
/Users/xxxx/.jenv/shims/Java
Voici une version plus DRY pour bash (Basé sur la réponse de Vegard)
Remplacez 1.7 et 1.8 par les versions qui vous intéressent .__ et vous obtiendrez un alias appelé 'javaX'; où 'X' est la version Java (7/8 dans l'extrait ci-dessous) qui vous permettra de changer facilement de version
for version in 1.7 1.8; do
v="${version: -1}"
h=Java_"$v"_HOME
export "$h"=$(/usr/libexec/Java_home -v $version)
alias "Java$v"="export Java_HOME=\$$h"
done