我已经安装了从oracle网站下载的JDK 7u7。但是安装完成后,终端仍然显示java版本6

$java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)

你知道为什么Java 7没有出现吗?

答: 好的,问题已经解决了。以下是答案: 我发现我的终端有一个.bash_profile, java主变量被设置为1.6

export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"

所以这就是每次我打开新终端窗口时导致问题的行。 只要去掉这条线就能解决问题。您仍然需要遵循@aleroot所说的,但如果这对您不起作用,请检查.bash_profile(或.bashrc)设置文件,以查看您之前是否导出过任何java版本。


当前回答

http://www.java.com/en/download/faq/java_mac.xml是一个很好的地方来理解,当苹果停止支持Java时,为什么Java首选项不再存在,而依赖System_Preferences => Java => Java,如果安装了来自Oracle的Java 7。

其他回答

简单的解决方案

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"

你可以运行这个命令来找到/Library/Internet Plugins/下的Java版本:

defaults read /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Info.plist CFBundleVersion

自从El Capitan之后,由于引入了新的“无根”策略,很难删除/usr/bin/java符号链接。

因此,我简单地将最新java版本的路径(在我的情况下,这是/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin)添加到我的.bashrc文件的path中:

# Use latest java version
export PATH=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH

要为当前会话重新加载.bashrc文件,请运行source ~/。Bashrc在壳里。您只需要对在更改.bashrc文件之前已经启动的会话执行此操作。

当你在shell中使用java时,现在使用的是最新版本。

Jenv,我可以建议你看看这个工具吗

这将允许您随时在已安装的jvm之间切换。

仅仅是:

jenv global oracle-1.7

之后为了测试目的:

jenv global oracle-1.6

你有更多的命令可用。

您可以在终端执行以下命令:

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"

这将用新java替换旧java。