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


当前回答

我遇到过类似的问题,终端没有更新java版本以匹配安装在mac上的版本。

设置JAVA_HOME环境变量没有问题

我想出了一个暂时的,有点痛苦但有效的解决方案。

在你的.bash_profile中添加这样一行:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home"

(这是我的机器上的路径,但可能与你的不同,请确保获得你的路径。路径应该匹配/Library/Java/JavaVirtualMachines/)

运行source ~/.bash_profile

正如我提到的,这是一个临时的权宜之计解决方案,因为java主路径是硬编码的。实际上没有办法设置获取最新的路径,因为这是苹果应该已经为终端做的事情,问题是苹果的java_home环境变量没有更新。

其他回答

发生这种情况是因为.bash_profile没有反映变化。要反映它,只需使用下面的命令

$ source .bash_profile

检查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)

最新100%有效的方法:

在bash中:

vim ~/.bash_profile

add

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

:wq保存 Cmd +q强制退出bash 再次打开bash,并输入Java -version

但实际上这个路径指向jre而不是jdk。

如果您想将路径指向JDK,则需要

确保您已经安装了JDK,而不是一个JRE运行时 替换之前的路径为path ="/Library/Java/JavaVirtualMachines/jdk1.8.0_221. "jdk”,你可以去/Library/Java/JavaVirtualMachines确保你已经安装了你想要的jdk版本。

如果您安装了Homebrew,可以安装Java -switcher以更快地更改Java默认版本

brew tap andycillin/tap
brew install java-switcher

然后,只需使用一个命令就可以切换默认Java版本。

java-switcher 1.7

or

java-switcher 10

我遇到过类似的问题,终端没有更新java版本以匹配安装在mac上的版本。

设置JAVA_HOME环境变量没有问题

我想出了一个暂时的,有点痛苦但有效的解决方案。

在你的.bash_profile中添加这样一行:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home"

(这是我的机器上的路径,但可能与你的不同,请确保获得你的路径。路径应该匹配/Library/Java/JavaVirtualMachines/)

运行source ~/.bash_profile

正如我提到的,这是一个临时的权宜之计解决方案,因为java主路径是硬编码的。实际上没有办法设置获取最新的路径,因为这是苹果应该已经为终端做的事情,问题是苹果的java_home环境变量没有更新。