6
votes

La version Mac OS Java de la racine est différente

Après avoir installé JDK7U5 pour Mac OS, j'ai eu différentes versions Java pour "normal" utilisateur et racine.

java -version me donne le 7.

sudo java -version me donne le 6.

J'ai levé les yeux dans le /system/library/frameworks/javavm.framework/versions / a trouvé qu'il y a des liens. Après avoir résolu les liens vers le répertoire réel, j'ai encore essayé avec tout le chemin.

/system/library/frameworks/javavm.framework/Versions/a/commands/java -version -> 7

sudo /system/library/frameworks/javavm.framework/versions/a/commands/java -version -> 6

même avec Javac!

J'espère que vous pourriez vous aider!


5 commentaires

Alors, quelle est exactement votre question? Voulez-vous définir l'utilisateur racine à Java 7?


Je veux que le Java pour la racine soit identique à celui de l'utilisateur normal. Dans mon cas, "sudo java -version" devrait également être la version 7


Essayez de définir votre java_home à la version mise à jour de Java.


@Failsafe - Ce n'est pas le moyen de le faire sur OSX


@Mark - Ah Eh bien, je jetais juste des choses là-bas. Je n'ai pas vraiment connu la réponse, je n'utilise pas vraiment de Mac qui souvent pour Dev Stuff.


3 Réponses :


-1
votes

Il semble que la version Java utilisée par le lien que vous avez spécifié dépend de la variable java_version d'environnement. Pourrait-il être que cette variable est définie pour votre utilisateur, mais sera effacée par sudo ? Dans ce cas, désapprentit explicitement l'utilisateur ou la définition pour la racine devrait aider à les conserver en synchronisation. Bien sûr, vous pouvez également remplacer le / a / par la version réelle que vous souhaitez exécuter.


1 commentaires

Il n'y a pas de java_version défini. quel java -> / usr / bin / java sudo quel java -> / usr / bin / java , / usr / bin / java est un lien vers /system/library/frameworks/javavm.framework/versions/current / Commandes / Java



5
votes

Sous OSX / USR / BIN / JAVA localise la version Java à utiliser en examinant ce que vous avez choisi avec les préférences / applications / utilitaires / java.app . Les fichiers THS utilisent sont également mis à jour par l'oracle Updater.

Comme vous devez faire glisser les versions manuellement pour définir Java 1.7, vous n'aurez que définir ceci pour l'utilisateur que vous exécutez comme c'est-à-dire non root. Pour la définir pour racine, j'ai exécuté l'application comme sudo / applications / utilitaires / java \ préférences.app/contents/macos/java \ Préférences et déplacé 1,7 vers le haut.

Autant que je puisse voir les fichiers Les mises à jour de l'application sont dans ~ / Bibliothèque / Préférences / ByHost / com.apple.java.javapreferences. .Plist < Numéro hexagonal> est lié à la machine. Le répertoire à domicile de la racine est / var / root, donc j'ai maintenant /var/root/library/preferences/byhost/com.apple.java.javapreferences. .Plist


1 commentaires

J'espère juste que rien ne fonctionne en tant que pourriture a besoin de 1,6 - mais je doute beaucoup Apple utiliserait Java



0
votes

attrapé le même problème sur Mac OS X 10.7.5 + JRE 1.6.0_43 + JDK 1.7.0_17.

  • Java -Version => 1.7
  • sudo java -version => 1.6

    Panneau de commande Java ouvert avec sudo, cela corrige le problème:

    • sudo / usr / bin / javaws -Viewer

0 commentaires