来自root的mac os java版本是不同的

时间:2012-07-05 13:00:11

标签: macos java java-7

在为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相同!

希望你们能帮助我!

3 个答案:

答案 0 :(得分:5)

在OSX / usr / bin / java下,通过查看您使用/Applications/Utilities/Java Preferences.app选择的内容来查找要使用的Java版本。所使用的文件也由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

答案 1 :(得分:0)

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

  • java -version =&gt; 1.7
  • sudo java -version =&gt; 1.6

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

  • sudo / usr / bin / javaws -viewer

答案 2 :(得分:-1)

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