我已经安装了从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版本。


当前回答

这太疯狂了!Oracle如何提供一个不安装任何东西的安装程序!?

无论如何,对我来说是:

sudo rm /usr/bin/java
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/java /usr/bin/java

1.8.0_31是你安装的Java版本…

其他回答

从Oracle站点通过分布式JDK DMG安装会自动更新所有内容。我已经看到(在El Capitan)更新通过系统首选项> Java做更新,但不反映到命令行。通过DMG进行安装就可以了。

安装JDK 7,这个问题就会自行解决。

确保使用Java开发工具包(JDK),其中包括编译器和类似的东西,而不仅仅是Java运行时环境(JRE)。

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

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

这将用新java替换旧java。

因为我还没有面对过这个问题,我有一种预感——

你能试试这个吗:

软链接“java_home”指向哪里:

ls -lrt /usr/libexec/java_home

输出:(发育不良) lrwxr-xr-x java_home -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home . zip

**ls -lrt /System/Library/Frameworks/JavaVM.framework/Versions 我的MAC产生以下:

 lrwxr-xr-x CurrentJDK ->
 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents**

 lrwxr-xr-x   Current -> A
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.6.0 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.6 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.5.0 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.5 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.4.2 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.4 -> CurrentJDK

基于此,我们可能会得到进一步进行的提示?

我用 Sudo rm /usr/bin/java

我下载并安装了最新的Java SE Runtime Environment: http://www.oracle.com/technetwork/java/javase/downloads/index.html

sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.使用实例jdk/Contents/Home/jre/bin/java /usr/bin/java不适合我,因为我得到了操作不允许。El Capitan现在以“无根”模式保护某些系统目录(又名系统完整性保护)。它适用于macOS Sierra,可能在可预见的未来也适用于新的macOS版本。