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


当前回答

检查JDK版本:

$ ls  /Library/Java/JavaVirtualMachines/
jdk-11.0.2.jdk  jdk1.8.0_91.jdk

现在在你的~/。导出指定版本的JAVA_HOME:

if [ -e /usr/libexec/java_home ]; then
  export JAVA_HOME=$(/usr/libexec/java_home -v 11)
fi

源bashrc文件和Java版本将被更新:

$ java -version
java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)

其他回答

我用 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版本。

检查JDK版本:

$ ls  /Library/Java/JavaVirtualMachines/
jdk-11.0.2.jdk  jdk1.8.0_91.jdk

现在在你的~/。导出指定版本的JAVA_HOME:

if [ -e /usr/libexec/java_home ]; then
  export JAVA_HOME=$(/usr/libexec/java_home -v 11)
fi

源bashrc文件和Java版本将被更新:

$ java -version
java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)

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

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

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

因为你需要在Java Preferences窗格中输入,并以这样的方式只标记JVM 7:

要在Mac OS X中轻松快速地打开Java首选项窗格,您可以简单地使用⌘+SPACE调用spotlight,并键入系统首选项,它将显示在窗口的最后一行。