编者注:这个问题是在2014年提出的,答案可能已经过时了。


我想用最新的JavaFX编程,它需要Java 8。我使用的是IntelliJ 13 CE和Mac OS X 9 Mavericks。我运行了Oracle的Java 8安装程序,文件看起来像是在

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk

但以前的版本是

/System/Library/Java/JavaFrameworks/jdk1.6....

不知道为什么最新的安装程序把这个放在/Library而不是/System/Library(也不知道有什么区别)。但是/usr/libexec/java_home找不到1.8,所以我找到的所有关于如何设置当前java版本的帖子都不起作用。我已经尝试添加了一个符号链接,使它看起来像1.8在/System/Library中…路径,但没有用。/usr/libexec/java_home -V仍然只列出旧的Java 1.6。

讽刺的是,在“系统首选项”下的“Java”控制面板只显示Java 1.8!

为什么Oracle的安装程序不把它放在它真正应该去的地方?我该如何解决这个问题呢?


当前回答

下面的步骤对我很有效。

1)卸载所有jdk

在终端窗口中复制并粘贴下面的命令:

sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefpane

2)安装APPLE jdk。

https://support.apple.com/kb/DL1572?locale=en_US

3)从Oracle下载最新的JDK并安装,对我来说是JDK 1.82

http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

就是这样,它会像魔法一样起作用。

其他回答

请运行以下命令,它将在OS X上安装Java 8:

brew tap adoptopenjdk/openjdk
brew install --cask homebrew/cask-versions/adoptopenjdk8

注意:

Adoptopenjdk8已正式停产上游。 在最新版本的macOS中,它可能会停止正确工作(或完全停止工作)。所以,这是目前工作,但是,请不要使用这个答案来安装Java 8

如果你用的是Mac,那么Homebrew就是安装软件的方式。

似乎版本8不再是最新的,所以它不能使用默认的酿造桶安装java。

相反,我做到了以下几点:

brew install homebrew/cask-versions/

如果这个失败了,直接试试下一个:

brew install homebrew/cask-versions/adoptopenjdk8

使用brew cask list或java -version进行测试

下面的步骤对我很有效。

1)卸载所有jdk

在终端窗口中复制并粘贴下面的命令:

sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefpane

2)安装APPLE jdk。

https://support.apple.com/kb/DL1572?locale=en_US

3)从Oracle下载最新的JDK并安装,对我来说是JDK 1.82

http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

就是这样,它会像魔法一样起作用。

MacOS Big Sur 2021 Java 8安装指南:

如果还没有注册,请登录https://profile.oracle.com/myprofile/account/create-account.jspx; 访问https://www.oracle.com/java/technologies/downloads/#jdk17-mac 选择“Java 8”; 选择“macOS”; 按“jdk-8u301-macosx-x64.dmg”; 选中复选框; 按“下载jdk-8u301-macosx-x64.dmg”; 打开下载的文件; 遵循安装指南;

喜欢=)

用啤酒

brew install Caskroom/cask/java