2009-06-17 5 views
2

La version retournée par java -version sur la ligne de commande sera déterminée par le lien /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK si JAVA_HOME est exporté comme/Library/Java/Home (qui est un lien vers /System/Library/Frameworks/JavaVM.framework/Home)Java Preferences.app ne change pas la version java par défaut

La version retournée par java -version sur la ligne de commande sera déterminée par Java Preferences.app si JAVA_HOME n'est pas défini. Je l'ai compris par essais et erreurs. Je suis intéressé par où cela est documenté.

Je ne suis pas sûr si CurretntJDK est sûr pour l'utilisateur de changer. Java Preferences.app ne le change pas.

Répondre

4

ne changent pas currentJDK, je l'ai fait et il foiré mon java

+0

je l'ai fait aussi :) –

1

En outre, vous devriez éviter de mettre JAVA_HOME dans votre .bashrc/.profile. Si elle est définie, Java Preferences.app n'a aucun effet et

java -version 

renvoie toujours ce qu'il considère comme la version « par défaut » (dans mon cas, sous Mac OS X Leopard, c'est Java 1.5).

2

La définition de la variable d'environnement JAVA_HOME est la méthode appropriée pour spécifier la version Java dans une session. Vous pouvez spécifier JAVA_HOME dans le fichier info.plist ou en créant une application de chargement qui définit la variable d'environnement avant de lancer l'application.

Veuillez noter que le réglage JAVA_HOME est généralement une mauvaise idée car les versions disponibles de Java varient en fonction de la version de la plate-forme/du système d'exploitation. Par exemple, seuls les Mac Intel 64 bits ont Java 6 avec Leopard. Les Mac Intel 32 bits et 64 bits ont Java 6 avec Snow Leopard.

J'ai trouvé que si vous voulez supporter des Mac Intel Core Duo 32 bits avec Tiger ou Leopard, la meilleure chose à faire est de cibler Java 1.5. Java 1.6 JRE exécutera des applications Java 1.5. Si vous avez besoin de Java 1.6, vous devez demander Intel à 64 bits avec Leopard ou Intel avec Snow Leopard de vos utilisateurs. Rappelez-vous, il y a SoyLatte qui fournit une alternative Java 1.6 32 bits pour les utilisateurs de Tiger et Leopard. "Java -version" change en fonction du paramètre JAVA_HOME et, comme vous l'avez remarqué, également par les préférences Java. Pour résumer, vous ne devriez pas vraiment définir JAVA_HOME sauf si vous distribuez un Java JRE avec votre application, tel que SoyLatte. Dans ce cas, vous connaissez la version cible et le chemin sera là. Sinon, vous ne pouvez pas compter sur une version particulière fournie par le système d'exploitation.

Vous trouverez la documentation sur le site des développeurs d'Apple ici: http://developer.apple.com/mac/library/documentation/Java/Conceptual/Java14Development/01-JavaOverview/JavaOverview.html