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


当前回答

简单的解决方案

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

其他回答

我认为你可以尝试安装jdk而不是jre。通过安装jdk, /usr/bin/java中的java将被替换,所有库将正常工作。

在我的案例中,问题是Oracle将它安装到与我习惯的位置不同的位置。

从Oracle下载:http://java.com/en/download/mac_download.jsp?locale=en

Verify that it's installed properly by looking in System Prefs: Command-Space to open Spotlight, type 'System Preferences', hit enter. Click Java icon in bottom row. After the Java Control Panel opens, click 'Java' tab, 'View...', and verify that your install worked. You can see a 'Path' there also, which you can sub into the commands below in case they are different than mine. Verify that the version is as you expect (sub in your path as needed): /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java -version Create link from /usr/bin/java to your new install sudo ln -fs /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin/java Sanity check your version: java -version

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

brew tap andycillin/tap
brew install java-switcher

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

java-switcher 1.7

or

java-switcher 10

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

自从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时,现在使用的是最新版本。