Mac OS X et plusieurs versions Java
Comment puis-je installer un java supplémentaire sur MacOS? J'ai installé jdk8 et ça marche très bien. mais maintenant j'ai besoin d'une installation jdk7 pour le développement. En essayant d'installer l'ancienne version via le fichier DMG, je reçois un avertissement, qu'il y a déjà une nouvelle version de java installée et que l'installateur quitte.
/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
9 réponses
la façon la plus propre de gérer plusieurs versions java sur Mac est d'utiliser Homebrew
.
et dans Homebrew
, utiliser:
-
homebrew-cask
pour installer les versions de java -
jenv
pour gérer les versions installées de java
comme vu sur http://hanxue-it.blogspot.ch/2014/05/installing-java-8-managing-multiple.html , ce sont les étapes à suivre.
- installer homebrew
- installer homebrew jenv
- installer homebrew-cask
- installer une version java spécifique en utilisant cask (voir" homebrew-cask versions "paragraphe ci-dessous)
- ajouter cette version pour jenv de le gérer
- vérifiez que la version est correctement gérée par jenv
- répétez les étapes 4 à 6 pour chaque version de java dont vous avez besoin
homebrew-cask versions
Ajouter homebrew/cask-versions
appuyez pour homebrew à l'aide:
brew tap homebrew/cask-versions
, Alors vous pouvez regarder toutes les versions disponibles:
brew search java
alors vous pouvez installer la version (s) vous aimez:
brew cask install java7
brew cask install java6
et les ajouter pour être gérés par jenv comme d'habitude.
jenv add <javaVersionPathHere>
je pense que c'est la façon la plus propre et la plus simple de procéder.
autre chose importante à noter, comme mentionné dans Mac OS X 10.6.7 Java Path Current JDK confusing :
pour différents types de JDKs ou d'installations, vous aurez différent les chemins d'accès
vous pouvez vérifier les chemins des versions installées en utilisant
/usr/libexec/java_home -V
, voir Comment puis-je vérifier si le Java JDK est installé sur Mac?sur Mac OS X Mavericks, j'ai trouvé comme suit:
1) JRE intégré par défaut:
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
2) jdks Téléchargé de Apple:
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/
3) jdks Téléchargé de Oracle:
/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home
ressources
- suppression de Java 8 JDK de Mac
- http://hanxue-it.blogspot.ch/2014/05/installing-java-8-managing-multiple.html
- http://sourabhbajaj.com/mac-setup/index.html
- http://brew.sh
- https://github.com/Homebrew/homebrew/tree/master/share/doc/homebrew#readme
- http://sourabhbajaj.com/mac-setup/Homebrew/README.html
- "brew appuyez sur" expliqué https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/brew-tap.md
- "versions de brew", a expliqué Homebrew installer la version spécifique de formula? et aussi https://github.com/Homebrew/homebrew-versions
- https://github.com/caskroom/homebrew-cask
- "cask versions", similaire à "brew versions", voir https://github.com/caskroom/homebrew-versions et aussi https://github.com/caskroom/homebrew-cask/issues/9447
- http://www.jenv.be
- https://github.com/gcuisinier/jenv
désinstaller jdk8, installer jdk7, puis réinstaller JDK8.
Mon approche de la commutation entre eux (dans .de profil) :
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
alors vous pouvez simplement taper java7
ou java8
dans un terminal pour changer de version.
(edit: mis à jour pour ajouter Dylans amélioration pour Java 9)
pour macOS Sierra 420
ce guide a été concocté à partir de diverses sources (Réponses ci-dessus ainsi que d'autres messages), et fonctionne parfaitement.
0. Si vous ne l'avez pas déjà installé, installez homebrew.
voir https://brew.sh /
1. Installer jenv
brew install jenv
2. Ajouter jenv au profil bash
if which jenv > /dev/null; then eval "$(jenv init -)"; fi
3. Ajouter jenv à votre chemin
export PATH="$HOME/.jenv/shims:$PATH"
4. Tapez "caisson / versions "
brew tap caskroom/versions
5. Installer la dernière version de java
brew cask install java
6. Installer java 6 (ou 7 ou 8 ce dont vous avez besoin)
brew cask install java6
#brew cask install java7
#brew cask install java8
7. Installations D'Examen
toute la version Java s'installe ici: /Library/Java/JavaVirtualMachines
regardons.
ls -la /Library/Java/JavaVirtualMachines
8. Ajouter chaque chemin à jenv un-à-un-temps.
il faut ajouter" /Contents/Home " au dossier version. Attention: utilisez les chemins réels sur votre machine... ce sont juste exemple 's
jenv add /Library/Java/JavaVirtualMachines/1.6.0___EXAMPLE___/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk___EXAMPLE___/Contents/Home
9. Vérifier si jenv enregistré OK
jenv versions
10. Définir la version java à utiliser (globably)
où XX correspond à L'un des éléments de la liste des versions ci-dessus.
jenv global XX
vérifier la version java
java -version
vérifier les versions de jenv
devrait également indiquer la version actuelle utilisée avec un astérisque.
jenv versions
fait
Quick référence future
pour changer les versions java
... Voir la liste des versions java disponibles
jenv versions
... puis, où XX correspond à un élément de la liste ci-dessus
jenv global XX
SDKMAN! est un outil idéal pour utiliser plusieurs versions de Java, Gradle, Groovy, Kotlin, et d'autres outils JVM sur Mac OS. Installation et utilisation doc sont clairement sur le site principal.
(je n'ai pas d'affiliation, juste un utilisateur heureux).
comme exemple d'utilisation, si je tape ce qui suit dans une fenêtre de Terminal, il y a une liste des versions disponibles de Java SDK (éditées pour plus de brièveté):
$ sdk list java
Available Java Versions
+ 9ea170
> + 8u131
7u141-zulu
ici +
indique que la version est installée. >
indique la version 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 trouvé sur ce site web Commençons donc par installer jEnv
-
Exécuter ce 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
-
lorsque vous installez pour la première fois jEnv n'aura aucun JDK associé avec elle.
par exemple, je viens d'installer JDK 8 mais jEnv ne savoir à ce sujet. Pour vérifier les versions Java sur jEnv
pour le moment, il n'a trouvé que la version Java(jre) sur le système. La
*
affiche la version actuellement sélectionnée. Contrairement à RVM et rbenv, jen v ne peut pas installer JDK pour vous. Vous devez installer JDK manuellement à partir du site Web D'Oracle. -
installez JDK 6 à partir du site Web D'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 a fait N'ayant pas de JDK 6 pour MAC, Apple a créé/modifié sa propre version de déploiement. -
installer de la même manière JDK7 et JDK8.
-
ajouter JDKs à jEnv.
JDK 6:
-
vérifier les versions java installées en utilisant jenv
-
donc maintenant nous avons 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 Jdk 1.6 pour commencer IntelliJ
jenv local oracle64-1.6.0.65
-
vérifier la version java
C'est tout. Nous avons maintenant plusieurs versions de java et on peut les changer facilement. jEnv possède également d'autres fonctionnalités, telles que des enveloppes pour Gradle, Ant, Maven, etc., et la possibilité de définir des options JVM à l'échelle mondiale ou locale. Consultez la documentation pour plus d'informations.
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 utiliser une autre version pour l'application B.
j'ai créé le script suivant après avoir reçu 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//Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
fi
}
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:;;" -e "s;:?;;")
}
#setjdk jdk1.8.0_60.jdk
setjdk jdk1.7.0_15.jdk
j'ai mis le script ci-dessus .le fichier de profil. Ouvrez le terminal, type vi .de profil, ajouter le script avec l'extrait ci-dessus et l'enregistrer. Une fois que vous aurez tapé source .profile
votre profil script sans avoir à redémarrer le terminal. Maintenant tapez java -version
il devrait afficher 1.7 comme votre version actuelle. Si vous avez l'intention de le changer à 1,8 commenter la ligne setjdk jdk1.7.0_15.jdk
et décommenter la ligne setjdk jdk1.8.0_60.jdk
. Sauvegardez le script et exécutez-le à nouveau 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 qui nécessitent des versions java différentes.
je trouve ce gestionnaire de version Java appelé Jabba récemment et l'usage est très similaire aux gestionnaires de version d'autres langues comme rvm(ruby), nvm(node), pyenv(python), etc. C'est aussi multi-plateforme, donc certainement il peut être utilisé sur Mac.
Après l'installation, il va créer un dir dans ~/.jabba pour mettre toutes les versions Java que vous installez. Il " supporte l'installation de Oracle JDK (par défaut) / Server JRE, Zulu OpenJDK (depuis 0.3.0), IBM SDK, Java Technology Edition (depuis 0.6.0) et à partir D'URLs personnalisées.".
utilisation de base est énumérée sur leur Github. Un bref résumé 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
Jenv on Mac Sierra:
si vous ne travaillez pas après l'installation, faites cette correction de bug 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 est que le dossier / bin n'est plus là comme décrit dans sa page d'accueil, mais le dossier shim est utilisé comme /bin à la place.
- assurez-vous que ~/.jenv est là
-
which java
peut imprimer /Library/... - jenv global 1.8
- jenv shell 1.8
finalement, which java
vous donne:
/Users/xxxx/.jenv/cales/java
Voici une version plus sèche pour bash (basée sur la réponse de Vegard)
remplacer 1.7 et 1.8 avec 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