Comment puis-je basculer entre les deux versions de Java dans Mountain Lion maintenant que les préférences de Java ont disparu?

32

J'ai deux versions de Java installées avec Mountain Lion:

La mise à jour d'Apple supprime les préférences Java . Dans une autre question, quelqu'un s'interroge sur la suppression de cet utilitaire.

Ma question est différente:

  • Comment puis-je passer d'une version à l'autre maintenant que les préférences de Java ont disparu?

Auparavant, j'avais utilisé l'utilitaire Apple pour définir facilement les préférences Java. Sans cet utilitaire, existe-t-il un moyen simple et rapide?

Maverik
la source
Y a-t-il une raison pour laquelle vous ne pouvez pas réinstaller les préférences Java ?
Chharvey
@ TestSubject528491 Comment puis-je faire cela?
Maverik
Je pense que cela va vous aider, je n'ai pas encore essayé dans ma machine. Voir les étapes 12 et 13 du lien suivant wikihow.com/Install-Oracle-Java-on-Ubuntu-Linux . Vous pouvez répéter les étapes pour passer de java .. espérons que cela vous aide ..
Dilip Rajkumar Le
@DilipRajkumar C'est pour linux ....
Maverik
Désolé, j'ai supposé à tort que la commande linux fonctionnerait sur Mac. Si je suis chanceux avec une autre solution, je vous le suggérerais ..
Dilip Rajkumar

Réponses:

12

Vous aurez peut-être besoin de deux approches:

  • un pour changer la version du plug-in d'applet seul
  • Une autre approche consiste à changer de version pour d’autres parties de JRE sans changer de version pour le plug-in d’applet.

Mon cas d'utilisation récent :

  • Java 8 pour les applications n'utilisant pas le plug-in
  • Java 7 Update 9 pour le plug-in d'applet.

Pour basculer le plug-in d'applet mais pas les autres parties du JRE / JDK de Java 8 à Java 7 Update 9

  1. quitter les navigateurs Web et toutes les autres applications utilisant Java ou le plug-in d'applet Java
  2. installer JDK 8
  3. mettre de côté le plug-in
  4. Installez JRE 7 Update 9 ou JDK 7 Update 09.

Mise de côté: suggestion de déménagement

sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /private/var/tmp

Si vous envisagez de changer fréquemment, vous préférerez peut-être un autre emplacement temporaire.

Résultat

sh-3.2$ java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b58)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b02, mixed mode)
sh-3.2$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.8.2
BuildVersion:   12C60

À la fois:

Capture d'écran de la vérification de la version Java par Oracle dans Safari

Pour basculer le plug-in d'applet mais pas les autres parties du JRE / JDK de Java 7 Update 9 à Java 6 Update 37

Réponses sous:


Pour basculer le JRE mais pas le plug-in d'applet de Java 8 à Java 7 Update 9

Installer JDK 7 Update 09 puis JDK 8

  • le système d'exploitation et les applications utiliseront par défaut la version la plus récente.

Quittez toutes les applications utilisant Java. Pas besoin de quitter le navigateur.

Mettez de côté le jdk1.8… répertoire de

/Library/Java/JavaVirtualMachines

  • le système d'exploitation et les applications utiliseront Java 7 Update 9.

Pour basculer le JRE mais pas le plug-in d'applet de Java 7 Update 9 à Java 6 Update 37

Quittez toutes les applications utilisant Java. Pas besoin de quitter le navigateur.

Mettez de côté le jdk1.7… répertoire de

/Library/Java/JavaVirtualMachines

  • le système d'exploitation et les applications utiliseront Java 6 Update 37.

Exemple

macbookpro08-centrim:~ gjp22$ java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
macbookpro08-centrim:~ gjp22$ sudo mv /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk /private/var/tmp
Password:
macbookpro08-centrim:~ gjp22$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)

Généralement

Pour les utilisateurs d’OS X, certaines des informations fournies par Oracle sont d’abord trompeuses:

… etc.

Simplicité

Bien que rien de ce qui précède ne soit aussi simple que de basculer avec l’application Java Preferences précédemment installée par Apple, l’approche relativement simple de mise de côté (aucune désinstallation particulière n’est nécessaire) rappelle le souhait d’une installation par glisser-déposer… précédemment exprimée dans la zone openjdk-osx-build .

Quelqu'un voudra peut-être créer une application, mais je ne recommanderais pas d'utiliser des liens symboliques - cela fonctionnerait, mais pourrait ne pas être cohérent avec les futures méthodes d'installation par glisser-déposer.

Notes de côté

Au moment de l' écriture, les plus récentes versions prises en charge pour lesquelles Oracle fait des mises à jour publiquement disponibles sont (pour les plates - formes autres que OS X) Java 6 Update 37 et (pour les plates - formes , y compris OS X) Java 7 Update 9.

Des versions plus importantes étant disponibles, veuillez réinterpréter cette réponse en conséquence.

La terminologie de la version Java de cette réponse est conforme à la terminologie du centre d’aide Java .

Graham Perrin
la source
Faites-vous vraiment référence à Java 8 ou s'agit-il d'une erreur? :-)
Maverik
1
Vraiment ;-)… s'il vous plaît voir les questions liées, colonne de droite.
Graham Perrin
4
Voici un conseil si vous utilisez JDK8 et souhaitez changer fréquemment. Il suffit de sélectionner 0000 dans le répertoire JDK8 pour l’éteindre sudo chmod 0000 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/et le réactiver sudo chmod 0755 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/.
Brett Ryan
1
La dernière suggestion de @BrettRyan a parfaitement fonctionné pour moi. Je pense que c'est le moyen le plus facile d'aller.
Artem
1
Merci beaucoup @BrettRyan, c'était le plus simple !!! Je suggère à l'auteur de la réponse d'ajouter une alternative. J'ai créé un fichier .sh dans mon dossier personnel avec les commandes et créé un automate associé à une clé permettant de passer de l'une à l'autre. Incroyable!
Panthro
29

Ouvrez un terminal en utilisant cette commande:

/usr/libexec/java_home -v 1.6 

Vous pouvez remplacer la version 1.6 par n’importe quelle version de Java que vous souhaitez utiliser. La commande affichera l’emplacement de cette version de Java. (par exemple: / System / Library / Java / JavaVirtualMachines/1.6.0.jdk/Contents/Home)

vous pouvez ensuite définir JAVA_HOME comme vous le feriez normalement avec le résultat de la commande précédente. c'est à dire:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Donc, pour simplifier; quelque chose comme ça devrait marcher:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

n'oubliez pas de vérifier la version avec:

java -version

J'espère que ça aide.

utilisateur2343996
la source
4
C'est la réponse la plus utile à ce problème que je pourrais trouver n'importe où en ligne. JE VOUS REMERCIE!
SearchTools-Avi
1
Ok, CECI devrait être la réponse acceptée. J'ai un fichier JAR de mise à jour obligatoire pour un serveur d'applications que j'ai installé et il ne s'exécutera que sous Java 6. Grâce à cela, j'ai pu passer à Java 6, exécuter le programme de mise à jour, puis revenir en arrière. Maintenant, je peux mettre à jour le serveur d'applications pour qu'il fonctionne sous Java 7.
Adrian J. Moreno
4

Il semble que vous deviez le faire manuellement. La documentation d'Oracle indique qu'un seul JRE peut être installé à la fois .

Cette page de support Apple explique comment basculer entre le JRE Apple SE 6 et le JRE Oracle SE 7 . En résumé, pour revenir du JRE d’Oracle à celui d’Apple, démarrez l’application Terminal et tapez ce qui suit:

sudo mkdir -p /Library/Internet\ Plug-Ins/disabled

sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /Library/Internet\ Plug-Ins/disabled

sudo ln -sf /System/Library/Java/Support/Deploy.bundle/Contents/Resources/JavaPlugin2_NPAPI.plugin /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

La page d’assistance contient davantage d’instructions (et d’améliorations) sur la procédure de basculement de Web Start vers JRE 6 et de tout rediriger vers Oracle JRE 7 (réinstallez JRE).

Pas aussi simple que d'utiliser l'utilitaire de préférences Java, mais mieux que rien.

dfjacobs
la source
1
L'utilisation récente du terme JRE par Oracle est trompeuse pour les utilisateurs d'OS X. Le JRE est bien plus que le plug-in.
Graham Perrin
2

basé sur la réponse de user2343996

alias java8="export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) && java -version"
alias java6="export JAVA_HOME=$(/usr/libexec/java_home -v 1.6) && java -version"
existeundelta
la source
-4

Pourquoi faut-il avoir 2 versions de Java installées?

Apple n'a pas installé Java comme mise à jour par défaut (à partir de Lion, je crois). La meilleure façon de vérifier / installer Java sur un Mac est la suivante:

  1. Terminal ouvert. Tapez "java" (sans les guillemets bien sûr)
  2. Si Java n'est pas présent, vous obtenez le message suivant: "Aucun Java Runtime présent, demande…"
  3. Java commence à installer normalement (c'est le faux exécutable qui commence l'installation)
  4. Si vous avez Java pour vérifier la version, dans le type de terminal "java-version"

Si vous souhaitez installer une version différente de Java: Allez simplement sur le site Oracle et téléchargez le plus récent / ancien jdk.

SashaZd
la source
J'ai déjà deux versions de Java comme je l'ai écrit dans la question. Je demande comment changer celui par défaut.
Maverik
Je pense qu'il bascule automatiquement vers la version la plus récente / la dernière version installée. Dans mon cas, jdk 7 a été installé en dernier. C'est donc celui qui fonctionne par défaut.
SashaZd
3
Je veux pouvoir changer de version.
Maverik
Il existe des différences entre le JDK 6 Apple et le JDK 7 Oracle qui peuvent être à l'origine d'incompatibilités, à la fois au moment de la compilation et de l'exécution.
JohnnyO
1
En général, nous n'essayons pas de changer les prémisses de quelqu'un à moins de pouvoir offrir une alternative compétitive ou convaincante lorsque la réponse est simplement non. Nous déconseillons également de demander des votes, alors j’ai repris cela dans votre réponse.
bmike