J'ai installé Java-8. Maintenant, je voulais revenir à Java-7 par défaut, donc je saisis ...
/usr/libexec/Java_home -v 1.7.0_40 --exec Java -version
/usr/libexec/Java_home -v 1.7.0_40 --exec javac -version
Mais je vois encore ...
Java -version
Java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b108)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b50, mixed mode)
Cela fonctionne ...
export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home
Mais je voudrais une solution plus permanente.
Quelqu'un voit ce que je fais mal?
Changez facilement de version
Installez les versions 1.6, 1.7, 1.8 dans n'importe quel ordre. Note: Je crois que le dernier installé détermine lequel sera utilisé pour les plugins de navigateur, je ne me soucierai pas de changer ceux ci-dessous.
Ensuite, ajoutez à votre ~/.bashrc
ou ~/.bash_profile
, ou où que ce soit:
#!/bin/bash
export Java_HOME=$(/usr/libexec/Java_home -v 1.7)
setjdk() {
export Java_HOME=$(/usr/libexec/Java_home -v $1)
}
Vérifier la modification via Java -version
$ Java -version
Java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
$ setjdk 1.6
$ Java -version
Java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)
$ setjdk 1.8
$ Java -version
Java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)
De toute évidence, le changement ne concerne que la durée du shell. Mais vous pouvez voir où vous pouvez le configurer globalement maintenant.
Vous pouvez utiliser jEnv ( http://www.jenv.be/ ), qui est "un outil en ligne de commande pour vous aider à oublier la définition de la Variable d’environnement Java_HOME permettant de basculer entre les différentes versions du JDK "(extrait de la page d’accueil du projet).
Si vous connaissez Ruby, JEnv est comme utiliser RVM ou rbenv. Il vous aide à gérer plusieurs JDK différents installés sur votre machine sans avoir à écrire votre propre script pour passer d'un JDK à un autre. Vous pouvez modifier la version actuelle de Java en vous basant par exemple sur le répertoire actuel ou sur un fichier de configuration.
Vous ne pouvez pas basculer entre les versions Java. Dans la documentation , vous voyez:
Un seul JRE peut être installé à la fois. Le système n'installe pas de JRE dont la version est inférieure à la version actuelle. Si vous souhaitez installer une version inférieure de JRE, commencez par désinstaller la version actuelle.
Si vous souhaitez revenir à une version plus ancienne, vous devez désinstaller Java 8.
Je veux compléter la réponse de @ nkadwa. Sa suggestion a fonctionné, mais seulement après avoir également changé le lien symbolique pour CurrentSDK. Alors voici le code modifié:
setjdk() {
export Java_HOME=$(/usr/libexec/Java_home -v $1)
Sudo ln -nsf ${Java_HOME%/*} /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
}
setjdk 1.8