2012-07-05 92 views
5

爲mac os安裝jdk7u5後我得到了不同的「正常」用戶和root的java版本。mac os從根版本的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!

希望你們能幫助我!

+0

那麼你的問題到底是什麼?你想將root用戶設置爲Java 7嗎? – Failsafe 2012-07-05 13:06:23

+0

我希望Java的root用戶和普通用戶一樣。在我的情況下,'sudo java -version'也應該是版本7 – 2012-07-05 13:07:37

+0

嘗試將您的JAVA_HOME設置爲更新後的java版本。 – Failsafe 2012-07-05 13:35:58

回答

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>與機器相關。因此,我的主目錄是/ var/root,因此我現在有/var/root/Library/Preferences/ByHost/com.apple.java.JavaPreferences.<hex number>.plist

+0

感謝您的幫助! :)它工作正常! – 2012-07-05 13:38:50

+0

只是希望注意運行腐爛需要1.6 - 但我非常懷疑蘋果會使用Java – Mark 2012-07-05 14:13:45

-1

看來您指定的鏈接使用的java版本取決於JAVA_VERSION環境變量。難道這個變量是爲你的用戶設置的,但是會被sudo清除?在這種情況下,爲用戶顯式取消設置或將其設置爲root應該有助於保持同步。當然,您也可以用您想要執行的實際版本替換/A/

+0

沒有'JAVA_VERSION'集合。 ''/ usr/bin/java','/ usr/bin/java'是''/ usr/bin/java''sudo哪個java' - >'/ usr /框架/ JavaVM的。框架/版本/當前/命令/ java' – 2012-07-05 13:17:10

0

在Mac OS X 10.7.5 + JRE 1.6.0_43 + JDK 1.7.0_17中遇到同樣的問題。

  • Java的版本=> 1.7
  • 須藤Java的版本=> 1.6

開放的Java控制與須藤面板,這樣可以解決問題:

  • 須藤的/ usr/bin/javaws -viewer