在为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相同!
希望你们能帮助我!
答案 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上遇到同样的问题。
使用sudo打开java控制面板,这可以解决问题:
答案 2 :(得分:-1)
您指定的链接使用的java版本似乎取决于JAVA_VERSION
环境变量。可能是这个变量是为您的用户设置的,但是会被sudo
清除吗?在这种情况下,明确地为用户取消设置或将其设置为root应该有助于使它们保持同步。当然,您也可以将/A/
替换为您要执行的实际版本。