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

187
demandé sur ZhiXingZhe - WangYuQi 2014-10-08 12:41:51

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.

  1. installer homebrew
  2. installer homebrew jenv
  3. installer homebrew-cask
  4. installer une version java spécifique en utilisant cask (voir" homebrew-cask versions "paragraphe ci-dessous)
  5. ajouter cette version pour jenv de le gérer
  6. vérifiez que la version est correctement gérée par jenv
  7. 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

306
répondu Adrien Be 2018-08-22 06:10:41

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)

193
répondu Vegard 2017-10-10 13:32:41

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
49
répondu bob 2017-12-07 16:49:30

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
26
répondu Michael Easter 2017-07-16 23:40:02

comme trouvé sur ce site web Commençons donc par installer jEnv

  1. Exécuter ce dans le terminal

    brew install https://raw.github.com/gcuisinier/jenv/homebrew/jenv.rb
    
  2. ajouter jEnv au profil bash

    if which jenv > /dev/null; then eval "$(jenv init -)"; fi
    
  3. 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.

  4. 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.

  5. installer de la même manière JDK7 et JDK8.

  6. ajouter JDKs à jEnv.

    JDK 6:

    JDK 7: http://javahabi@javahabit.com/wp-content/uploads/2015/03/img_5518ab9bc47d4.png

    JDK 8: http://javahabi@javahabit.com/wp-content/uploads/2015/03/img_5518abb2c1217.png

  7. vérifier les versions java installées en utilisant jenv

    http://javahabi@javahabit.com/wp-content/uploads/2015/03/img_5518abceb0deb.png

  8. 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
    
  9. vérifier la version java

    java -version http://javahabi@javahabit.com/wp-content/uploads/2015/03/img_5518abe376dd0.png

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.

5
répondu Dinesh Arora 2018-06-26 01:43:09

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.

4
répondu ChaitanyaBhatt 2015-09-18 22:47:59

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
4
répondu York Yang 2017-04-26 20:19:31

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

3
répondu CodeFarmer 2016-10-31 01:06:40

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
0
répondu elad.chen 2018-04-05 12:51:05