如何在Mac上安装Java 8

1280

编辑说明:本问题是在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的安装程序不将其放置在真正的位置?如何解决此问题?


11
它实际上被安装在了 "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/" 这个位置。之前的位置是苹果提供的 Java 版本的安装路径,但由于苹果不再提供 Java 了,因此安装路径也发生了改变。 - awksp
类似问题:如何在Java 11中使用JDK而不使用JRE - Basil Bourque
安装OpenJDK@8, 请使用Brew命令。 - Rishabh Agarwal
3
brew install --cask temurin8 # Temurin是AdoptOpenJDK的官方继任者 - Simon B.
2022年8月更新:使用“brew install --build-from-source openjdk@8”进行安装。 - aminbadri7
截至2022年9月:OpenJDK Java 8安装程序可从Eclipse Temurin项目获取-https://adoptium.net/temurin/releases/?version=8。这不需要安装homebrew。 - Thorbjørn Ravn Andersen
35个回答

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

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

brew tap adoptopenjdk/openjdk
brew install --cask homebrew/cask-versions/adoptopenjdk8
注意:

adoptopenjdk8已被官方停止更新。在最近的macOS版本中,它可能无法正常工作(或完全无法工作)。因此,目前这种方法可以使用,但请不要使用此答案安装Java 8。


很高兴能帮到你 :) - Arefe
应该是唯一可接受的解决方案,运行得非常好。 - Muriithi Derrick

22

似乎还没有人提到过SDK man (https://sdkman.io/)。

SDK man可以在Mac上安装多个Java版本,并轻松切换这些版本。更多信息请访问https://sdkman.io/usage

例如:

$ sdk list java                                                                                                                                                                                                                       
================================================================================
Available Java Versions
================================================================================
   * 12.ea.20-open
     11.0.1-zulu
 > * 11.0.1-open
     10.0.2-zulu
     10.0.2-open
     9.0.7-zulu
     9.0.4-open
     8.0.192-zulu
     8.0.191-oracle
   + 8.0.181-oracle
     7.0.181-zulu
     1.0.0-rc-10-grl
     1.0.0-rc-9-grl
     1.0.0-rc-8-grl


================================================================================
+ - local version
* - installed
> - currently in use
================================================================================

$ sdk install java 8.0.191-oracle

$ sdk use java 8.0.191-oracle

Using java version 8.0.191-oracle in this shell.                                                                                                                                                                                                      

$ java -version                                                                                                                                                                                                                        
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

$ sdk use java 11.0.1-open                                           

Using java version 11.0.1-open in this shell.

$ java -version                                                                                                                                                                                                                        openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)
                                                                                                                                                                                                         ```



我收到了这个弹出窗口:

停止!java 8.0.191-oracle 不可用。可能的原因:
  • 8.0.191-oracle 是无效版本
  • java 二进制文件与您的平台不兼容
  • java 尚未发布
- aksyuma
实际上,8.0.191-oracle 已经不在列表中了。您可以使用“sdk list java”命令来检查其他发行版。 - stderr

19
brew cask install caskroom/versions/java8

16
对于2021年(也适用于2022年和2023年),这个方法对我有效。
brew tap homebrew/cask-versions


brew install --cask adoptopenjdk8

这在2022年是可行的,安装后可以使用以下命令来验证您的安装:javajava -version。但是,命令java --versionwhich java并不能给出正确的结果。 - mdabdullah

16

我有使用Java 7和8的应用程序,经常需要来回切换。

我使用Johan编写的脚本:

http://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/

现在您可以在启动时设置它,或在之后调用脚本。
安装Mac的JDK。

Java 7

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

Java 8

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


更新推荐!:

使用jenv https://www.jenv.be/ 和 homebrew。

然后只需输入jenv global oracle6401.6.0.39即可设置。


1
我使用这个脚本并且同意,它对于需要不同版本Java的开发人员来说非常有用。 - barclay
9
只要您只需要在整个系统中使用特定的版本,就不需要设置任何脚本。基本上,您只需要添加以下内容到您的~/.bashrc~/.bash_profile文件中:export JAVA_HOME="/usr/libexec/java_home -v 1.8" 如果Java安装程序尚未执行此操作,则还需要将$JAVA_HOME/bin添加到$PATH中。(注意:将双引号替换为反引号以获取/usr/libexec/java_home,无法在评论中输入文字反引号..) - ccpizza
如果您想通过Homebrew安装Java 7(并与Java 8共存),则命令为brew tap caskroom/versions,然后是brew cask install java7 - icfantv
3
jenv是一个非常方便的工具,可以全局或每个目录单独管理多个Java版本。 - Christian Long

11

在Mac High Sierra上运行以下命令

brew update
brew tap caskroom/versions
brew cask install java8

并使用命令进行检查

java -version

获取以下内容:错误:Cask 'java8' 下载失败,错误信息为:下载失败:https://download.oracle.com/otn-pub/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-macosx-x64.dmg - Siddhartha

11

截至2021年

brew install --cask adoptopenjdk/openjdk/adoptopenjdk8

3
这是今天对我有效的那个。 - Jose M Vidal

8

自 Homebrew 2.7.0 发布后的2020年12月21日,已禁用了 brew cask 命令。

使用以下命令安装 JDK:

brew install --cask adoptopenjdk/openjdk/adoptopenjdk8


8

如果您使用的是Mac电脑,那么Homebrew是安装软件的最佳方式。

似乎版本8已不再是最新版本,因此不能使用默认的brew cask install java来安装。

相反地,我通过以下步骤成功安装:

brew install homebrew/cask-versions/

如果失败了,直接尝试下一个方法:
brew install homebrew/cask-versions/adoptopenjdk8

使用brew cask listjava -version进行测试。


+1,这对我在macOS 10.12.6 Sierra上运行有效。(或者使用brew cask install adoptopenjdk/openjdk/adoptopenjdk8) - Vittore Marcas
+1 第一个失败了(错误:没有名为“homebrew/cask-versions/”的可用公式),但第二个似乎可以工作。更新答案以避免因第一个失败而吓到人们。 - Dennis Jaheruddin

7
使用brew
brew install Caskroom/cask/java

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接