Prise en charge de plusieurs versions Java sur OS X et l'emplacement JAVA_HOME

12

Je sais qu'il est possible d'avoir plusieurs versions de Java sur OS X mais j'ai du mal à comprendre comment cela fonctionne.

J'ai mis à niveau vers Mountain Lion et echo $JAVA_HOMEest maintenant vide.

Cependant, /System/Library/Frameworks/JavaVM.framework/Versions/

1.4     1.5     1.6     A       CurrentJDK
1.4.2   1.5.0   1.6.0   Current

Quand j'entre dans 1.4.2 et j'exécute java - versionou./java -version

Environnement d'exécution Java (TM) SE (build 1.6.0 _33-b03-424-11M3720)

Alors pourquoi toutes ces versions sont utilisées si elles ont la même version de Java?

Ensuite, j'ai téléchargé le JDK 7 d'Oracle et l'ai installé.

Où un nouveau JDK est-il généralement installé?

Et dernière question: comment choisir la version à exécuter par défaut pour toutes les applications?

Dans Win. J'ai défini JAVA_HOMEl' C:/ProgramFiles/Java/.… emplacement JAVA_HOME/binque j'ai mis dans Path: et c'est tout.

Cris
la source
1
Peut-être intéressant puisque Oracle utilise récemment le terme JRE pour décrire le plug-in d'applet Java seul (déroutant!); et puisque les utilisateurs d'OS X peuvent désormais utiliser simultanément deux versions différentes (une version pour le plug-in, une version différente pour les applications qui n'utilisent pas le plug-in): Comment gérer au mieux différentes versions java sur Mountain Lion?
Graham Perrin

Réponses:

3

Contenu de /System/Library/Frameworks/JavaVM.framework/Versions

Pour la plupart des cas d'utilisation, CurrentJDKdevrait fournir les fonctionnalités des versions actuelles et antérieures du JDK.

Pas toutes les versions antérieures, mais les versions les plus couramment requises:

sh-3.2$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.8
BuildVersion:   12A269
sh-3.2$ ls -l /System/Library/Frameworks/JavaVM.framework/Versions
total 64
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.4 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.4.2 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.5 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.5.0 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.6 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.6.0 -> CurrentJDK
drwxr-xr-x  8 root  wheel  272 17 Jul 07:48 A
lrwxr-xr-x  1 root  wheel    1 17 Jul 07:47 Current -> A
lrwxr-xr-x  1 root  wheel   59 17 Jul 07:47 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
sh-3.2$ 
Graham Perrin
la source
14

Préférer une version de Java

Utilisez les préférences Java de la manière habituelle.

Selon ce que vous avez installé en plus de la distribution d'Apple de Java, le premier onglet de l'utilitaire peut apparaître un peu différent.

Un exemple, sans les options familières pour les applets et Java Web Start:

Capture d'écran des préférences Java

Il existe des informations de base sur la façon dont cela fonctionne au niveau de la ligne de commande. L'outil de ligne de commande java_home rapporte ce paramètre de préférence.

$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/1.6.0_33-b03-424.jdk/Contents/Home

L' application d'espace réservé / usr / bin / java utilise ces paramètres pour exécuter la version préférée de Java.

$ which java
/usr/bin/java

$ java -version
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)

Enfin, lorsque vous configurez JAVA_HOME dans un script de lancement pour Tomcat ou Maven, vous pouvez vous connecter au système de préférences:

export JAVA_HOME=`/usr/libexec/java_home`

Les réponses ailleurs notent que Java peut être installé sur plusieurs chemins - 

  • / Système / Bibliothèque / Java / JavaVirtualMachines
  • / Bibliothèque / Java / JavaVirtualMachines
  • ~ / Bibliothèque / Java / JavaVirtualMachines

- mais pour ce qui est actuellement décrit dans la question ici, le JDK d'Oracle sur Mountain Lion, un seul chemin est probable .

Graham Perrin
la source
Merci pour la modification de la communauté, devrait-il y avoir un lien différent pour la lecture de fond?
Graham Perrin
2
Les préférences Java ne sont plus prises en charge et sont réellement supprimées lorsque l'on applique la mise à jour Java 2012-006 . Cela fait partie de l'abandon par Apple de la fourniture et de la prise en charge de Java.
BryanH
@BryanH merci - cette réponse a été donnée quelques mois avant Java pour OS X 2012-006 - voir la question liée. Veuillez également noter que tandis qu'Apple s'éloigne des distributions de JRE, nous ne devons pas supposer qu'Apple cessera de prendre en charge Java.
Graham Perrin
Oui merci. Je suppose que je devrais préciser que le «support» signifie qu'Apple ne fournit plus ni ne répond aux questions techniques sur la machine virtuelle Java pour OSX. Il appartient à Oracle (ou à un autre tiers) d'écrire et de maintenir ladite JVM.
BryanH
5

Depuis Mac OS X 10.8.2 Build 12C60, les préférences Java ne montrent plus les anciennes versions.

Carlo
la source
3

Chemins utilisés pour l'installation des JDK

Courir:

ls -l /Library/Java/JavaVirtualMachines

D'autres chemins peuvent être utilisés mais pour le JDK actuel d'Oracle, installé sur Mountain Lion, vous trouverez probablement le .jdkbundle sur ce chemin.

Graham Perrin
la source