6

在为 mac os 安装 jdk7u5 后,我为“普通”用户和 root 获得了不同的 java 版本。

java -version给我7。

sudo java -version给我6。

我查了一下, /System/Library/Frameworks/JavaVM.framework/Versions/发现有一些链接。在我解决了指向真实目录的链接后,我用整个路径再次尝试了它。

/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java -version -> 7

sudo /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java -version-> 6

与javac相同!

希望你们能帮助我!

4

3 回答 3

5

在 OSX /usr/bin/java 下,通过查看您选择的使用来定位要使用的 java 版本/Applications/Utilities/Java Preferences.app。使用的文件也由 Oracle 更新程序更新。

由于您必须手动拖动版本来设置 Java 1.7,因此您只需为运行它的用户(即不是 root)设置此项。要将其设置为 root,我运行应用程序sudo /Applications/Utilities/Java\ Preferences.app/Contents/MacOS/Java\ Preferences并将 1.7 移至顶部。

据我所知,应用程序更新的文件与~/Library/Preferences/ByHost/com.apple.java.JavaPreferences.<hex number>.plist机器<hex number>相关。Root 的主目录是 /var/root 所以我现在有了/var/root/Library/Preferences/ByHost/com.apple.java.JavaPreferences.<hex number>.plist

于 2012-07-05T13:34:20.870 回答
0

在 Mac OS X 10.7.5 + JRE 1.6.0_43 + JDK 1.7.0_17 上遇到了同样的问题。

  • java-版本=> 1.7
  • sudo java -version => 1.6

使用 sudo 打开 java 控制面板,这样可以解决问题:

  • sudo /usr/bin/javaws -viewer
于 2013-03-21T21:02:05.870 回答
-1

您指定的链接使用的 java 版本似乎取决于JAVA_VERSION环境变量。难道这个变量是为您的用户设置的,但会被清除sudo?在这种情况下,为用户显式取消设置或为 root 设置它应该有助于使它们保持同步。当然,您也可以将 替换为/A/您要执行的实际版本。

于 2012-07-05T13:09:53.953 回答