如何在Mac上安装Java 8

use*_*100 847 java macos java-8

我想用最新的JavaFX进行一些编程,这需要Java 8.我使用的是IntelliJ 13 CE和Mac OS X 9 Mavericks.我运行了Oracle的Java 8安装程序,文件看起来就像是他们最终的结果

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk
Run Code Online (Sandbox Code Playgroud)

但以前的版本是

/System/Library/Java/JavaFrameworks/jdk1.6....
Run Code Online (Sandbox Code Playgroud)

不知道为什么最新的安装程序将其放入/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的安装程序没有把它放到真正的位置?我该如何解决这个问题?

l3x*_*l3x 1703

不要依赖Oracle在Mac上正确安装Java.

使用Homebrew.这将安装最新的jdk:

brew cask install java
Run Code Online (Sandbox Code Playgroud)

如果要在Mac上管理多个版本的Java,请考虑使用jenv.

更新:现在Java 8不再是最新版本,如果您希望Java 8以这种方式安装它:

brew tap adoptopenjdk/openjdk
brew cask install adoptopenjdk8
Run Code Online (Sandbox Code Playgroud)

要获取所有旧版本java的列表:Error: Cask adoptopenjdk8 exists in multiple taps然后使用brew cask install adoptopenjdk/openjdk/adoptopenjdk8.

我们使用brew cask,因为我们否则会使用可能无法在Mac上正确安装Java的Oracle GUI安装程序.(使用brew cask install APP安装GUI应用程序;使用brew install APP.)Java不是GUI应用程序; 它不应该需要"桶",但至少Oracle是一致的.

  • 截至2015年12月,现在不必手动安装桶,因为它现在是自制软件安装的一部分.因此,在通过`brew update`更新自制​​软件之后,您将设置为使用`brew cask`. (84认同)
  • 现在的解决方法是“自来水龙头homebrew / cask-versions”并使用“ brew cask install homebrew / cask-versions / adoptopenjdk8”。 (75认同)
  • 谢谢,令人惊讶的是使用"官方"链接/文档的Java安装过程是多么可怕. (54认同)
  • `错误:Cask'java8'不可用:没有此名称的Cask存在 (40认同)
  • @tandrewnichols我刚刚在我的El Capitan Mac上运行`brew cask install java`,它正在下载`jdk-8u112-macosx-x64.dmg`. (14认同)
  • 请注意,截至2017年10月,默认brew命令(以及注释中的大多数命令)将安装任何*最新*主要版本JDK(即java 9)而不是特定的旧版本(例如,Java 8)如在OP).有关如何使用brew安装早期版本的Java(如果需要)的说明,请参阅此有用的博客文章.http://www.lonecpluspluscoder.com/2017/10/08/installing-other-versions-of-the-java-jdk-via-homebrew/ (12认同)
  • 它安装JDK.`brew cask info java` (9认同)
  • 桶'java8'不可用:不存在具有此名称的桶。 (9认同)
  • 如果其他人错过了这个,那么`brew cask install java8`方法会在`/ Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/bin/java`中安装`java`. (8认同)
  • 这不再起作用了,有关更多详细信息,请参见[here](https://github.com/Homebrew/homebrew-cask-versions/issues/7253)。 (4认同)
  • 由于Oracle许可证的更改,无法再使用Brew安装Java8。Java8不再公开供下载。 (4认同)
  • 与@tandrewnichols相比,我发现这个过程安装了JDK以及运行时 - 所以完全支持Java. (3认同)
  • Java8不再适用于brew / cask:https://github.com/Homebrew/homebrew-cask-versions/issues/7253 (3认同)
  • `酿造桶删除java;酿造桶安装采用openjdk8;java-版本` (3认同)
  • 我必须在dmg从oracle下载之前多次运行它,每次它在它停止的最后一点继续. (2认同)
  • 如果您使用Oracle更新程序安装了Java并希望Homebrew管理它,我是否必须先完全卸载Oracle Java? (2认同)
  • 3/28/18 - 尝试:brew install caskroom/version/java8 (2认同)
  • 酒桶安装java8错误:木桶java8存在多次: (2认同)
  • `brew install --cask acquireopenjdk/openjdk/adoptopenjdk8` 对我有用,我在带有 Apple M1 芯片的 mac Monterey 上。 (2认同)

kav*_*hmb 639

对于El Capitan,SierraHigh Sierra

首先从终端安装和更新brew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew tap homebrew/cask-versions

brew update
Run Code Online (Sandbox Code Playgroud)

Java 8:

brew tap adoptopenjdk/openjdk

brew cask install adoptopenjdk8
brew cask install adoptopenjdk9
brew cask install adoptopenjdk10
brew cask install adoptopenjdk11
Run Code Online (Sandbox Code Playgroud)

Java最新消息:

brew cask install java8
Run Code Online (Sandbox Code Playgroud)

  • 错误:木桶'java8'不可用:不存在具有该名称的木桶。 (12认同)
  • `$ brew cask install acquireopenjdk8 错误:Cask suggestopenjdk8 存在于多个水龙头中:caskroom/versions/adoptopenjdk8 suggestopenjdk/openjdk/adoptopenjdk8` 。我必须使用 `brew cask install acquireopenjdk/openjdk/adoptopenjdk8` (7认同)
  • 值得注意的是,这对我来说对小牛队没有用,所以它没有回答OP的问题,但它确实对我的队长有用,所以它有用作答案. (2认同)
  • 我在新的OS X El Capitan机器上安装了homebrew fresh,并且不必在上面的答案中运行`brew tap`命令.第一个和第三个命令就足够了. (2认同)
  • 在Hi Sierra 10.13.6上,“ brew tap homebrew / cask-versions”和“ brew cask install acceptopenjdk8”对我有用。 (2认同)
  • 如何设置openjdk8的JAVA_HOME路径? (2认同)

小智 122

我只是在我的MBP上做了这个,并且不得不使用

$ brew tap caskroom/versions
$ brew cask install java8
Run Code Online (Sandbox Code Playgroud)

为了让java8安装.

  • 或者只是`brew install homebrew/cask-versions/java8`获胜! (10认同)
  • 它帮助我安装了特定版本的java.现在当java 9出来时,运行"brew cask install java"安装java 9."brew cask install java8"对我来说不起作用,直到我运行"brew tap caskroom/versions". (9认同)
  • 是的,在安装java8之前需要`brew tap caskroom/versions` (6认同)
  • 由于Oracle许可证的更改,无法再使用Brew安装Java8。Java8不再可供公共下载。 (4认同)
  • 如果您仍想使用 java8,请参阅 /sf/answers/3904289651/。请注意,这虽然使用了 OpenJDK。 (3认同)
  • `错误:木桶'java8'不可用:不存在具有此名称的木桶。` (3认同)

Dav*_*err 104

Java8在自制软件上不再可用,brew install java8将无法使用。

而是使用:

brew cask install adoptopenjdk/openjdk/adoptopenjdk8
Run Code Online (Sandbox Code Playgroud)

有关技术细节,请参见此提交

也请注意,您可能会遇到问题Cask adoptopenjdk8 exists in multiple taps。这是一个当前正在处理的已知问题,您可以在此处查看:

https://github.com/AdoptOpenJDK/homebrew-openjdk/issues/106

对于那些不想详细了解这些内容的人,以下是摘要:

# To install JDK8
brew cask install adoptopenjdk/openjdk/adoptopenjdk8

# To be able to safely run 'brew cleanup'
brew untap adoptopenjdk/openjdk
brew untap caskroom/versions
brew cleanup
Run Code Online (Sandbox Code Playgroud)

  • 使用AdoptOpenJDK / openjdk而不是使用homebrew / cask-versions / adoptopenjdk8有什么区别吗? (2认同)

toa*_*oza 59

我开始真正喜欢在本地计算机上运行应用程序的选项是使用Docker.您可以在官方JDK容器中运行您的应用程序 - 这意味着您不必担心在本地计算机上设置所有内容(或担心为不同的应用程序运行多个不同版本的JDK等)

虽然这可能无法帮助您解决当前的安装问题,但这是一个解决方案,这意味着您可以在尝试让Java在您的开发计算机上正常运行时遇到问题的雷区!

好处是:

  1. 无需在本地计算机上设置任何版本的Java(您只需在从Docker Hub提取的容器中运行Java)
  2. 只需更改容器上的标签,即可轻松切换到不同版本的Java.
  3. 项目依赖项安装在容器中 - 因此,如果您搞砸了配置,您可以简单地核对容器并重新开始.

一个非常简单的例子:

创建一个Dockerfile:

FROM java:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
Run Code Online (Sandbox Code Playgroud)
  • 在这里,我们指定运行SDK的8版本的Java容器(java:8-使用Java 7,你可以只注明:java:7)
  • 我们将本地目录映射/usr/src/myapp到容器内的目录:

创建一个docker-compose.yml文件:

version: "2"

services:
  java:
    build: .
    volumes:
      - .:/usr/src/myapp
Run Code Online (Sandbox Code Playgroud)

现在,假设我们有这个Java文件:

HelloWorld.java

public class HelloWorld {
    public static void main(String[] args) {        
        System.out.println("Hello, World");
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我们有以下文件结构:

.
|_ Dockerfile
|_ docker-compose.yml
|_ HelloWorld.java
Run Code Online (Sandbox Code Playgroud)

你可以做各种Java之类的事情:

编译:

docker-compose run --rm java javac HelloWorld.java 
Run Code Online (Sandbox Code Playgroud)
  • 您应该注意到HelloWorld.class出现在您当前的目录中(这是因为我们已将当前目录映射到容器中我们的代码存在的位置

跑:

docker-compose run --rm java java HelloWorld 
Run Code Online (Sandbox Code Playgroud)
  • 注意:第一次运行它会获取图像等.这将需要一段时间 - 它只会在第一次发生
  • docker-compose run - 从容器内运行命令
  • -rm 告诉docker在命令运行完毕后删除容器
  • java 是运行此命令的服务/容器的名称(来自我们的docker-compose文件)
  • 该行的其余部分是在容器内运行的命令.

这是一种非常酷的方式来处理为不同的应用程序运行不同版本的Java而不会使您的本地设置完全混乱:).

这是一个稍微复杂的例子,它有Maven和一个简单的Spring应用程序

免责声明:

  • 我想象一下downvote,因为这并没有回答在OS X/MacOS上运行Java的问题.通过"只需使用VM /垫片在平台Y上执行此操作"来回答"我如何在平台X上执行此操作"并不高效. (26认同)
  • 使用Docker的一个很好的例子,不确定为什么以前会被否决。 (2认同)

fre*_*dev 36

2021 年,您只需使用 brew

brew install openjdk@8
Run Code Online (Sandbox Code Playgroud)

也许你需要更新PATHenv:

export PATH="/usr/local/opt/openjdk@8/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

我认为sdkmanbrew“raw”好,但你必须在有 jdk 之前安装它

curl -s "https://get.sdkman.io" | bash
Run Code Online (Sandbox Code Playgroud)

然后打开一个新的 shell并尝试list查看可以安装的内容;-)

sdk list java 
sdk install java 8.0.282.hs-adpt
Run Code Online (Sandbox Code Playgroud)

  • sdkman是一个祝福 (3认同)
  • 必须执行 `brew install --build-from-source openjdk@8` 才能使其工作 (2认同)

Ben*_*nti 23

我有同样的问题要解决,因为我需要安装JDK8来运行Android SDK Manager(因为它似乎与JDK9不兼容).但是,我告诉你我如何解决Mac(Sierra)上的所有问题.

首先,你需要用木桶和jenv 酿造.

  1. 您可以在这里找到有用的指南,Homebrew Cask安装指南.请记得点击终端中运行的"caskroom/versions": brew tap caskroom/versions
  2. 之后,安装jenv: brew install jenv
  3. 安装任何你想要的版本桶 brew cask install java8(或java7或者java,如果你想安装最新版本,jdk9)
  4. 最后一步是配置要运行的版本(并让jenv管理您的JAVA_HOME) jenv versions列出您计算机上安装的所有版本,然后激活您想要的版本jenv global [JDK_NAME_OF_LIST]

您可以在此Github Gist brew-java-and-jenv.md上找到其他有用的信息,在此博客上在MacJenv网站上安装多个JDK


Lyn*_*tel 23

假设:Mac机你已经安装了自制软件.

安装桶:

$ brew tap caskroom/cask
$ brew tap caskroom/versions
Run Code Online (Sandbox Code Playgroud)

要安装最新的java:

$ brew cask install java
Run Code Online (Sandbox Code Playgroud)

要安装java 8:

$ brew cask install java8
Run Code Online (Sandbox Code Playgroud)

如果您想安装/管理多个版本,那么您可以使用'jenv':

安装和配置jenv:

$ brew install jenv
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

将已安装的java添加到jenv:

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.11.0_2.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

要查看所有已安装的java:

$ jenv versions
Run Code Online (Sandbox Code Playgroud)

上面的命令将给出已安装java的列表:

* system (set by /Users/lyncean/.jenv/version)
1.8
1.8.0.202-ea
oracle64-1.8.0.202-ea
Run Code Online (Sandbox Code Playgroud)

配置要使用的Java版本:

$ jenv global oracle64-1.6.0.39
Run Code Online (Sandbox Code Playgroud)

设置JAVA_HOME:

$ jenv enable-plugin export
Run Code Online (Sandbox Code Playgroud)

  • 最好的解决方案!谢谢你! (3认同)

Aru*_*run 22

brew cask安装caskroom/versions/java8


Are*_*efe 20

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

brew tap adoptopenjdk/openjdk
brew install --cask homebrew/cask-versions/adoptopenjdk8
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用!其他什么也没做。 (2认同)

nxh*_*oaf 16

如果您的计算机上有多个Java版本,并且您想在运行时动态选择它,即在我的情况下,我有两个版本:

ls -la /Library/Java/JavaVirtualMachines
drwxr-xr-x  3 root  wheel    96B Nov 16  2014 jdk1.7.0_71.jdk/
drwxr-xr-x  3 root  wheel    96B Mar  1  2015 jdk1.8.0_31.jdk/
Run Code Online (Sandbox Code Playgroud)

您可以通过修改/etc/profile内容来更改它们.只需在文件末尾添加(或修改)以下两行:

export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

在我的情况下,如果我想使用它应该像下面这样:

Java 7:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

Java 8:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

保存文件后,请运行 source /etc/profile它应该工作.当我相应地使用第一个和第二个选项时,结果如下:

Java 7:

java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Run Code Online (Sandbox Code Playgroud)

Java 8:

java -version 
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Run Code Online (Sandbox Code Playgroud)

如果您的java文件夹位于不同的位置,则该过程类似.


Bas*_*que 13

JavaVirtualMachines 文件夹现在是正确的

为什么Oracle的安装程序没有把它放到真正的位置?我该如何解决这个问题?

不是问题.

该文件夹/Library/Java/JavaVirtualMachines/macOSJVM的新主页.

要安装JVM,请使用下面讨论的安装程序.

要卸载,只需使用Finder从该文件夹中删除JVM即可.系统将提示您输入系统管理员密码以完成删除.


Java 9&10&11

早在2010年,Apple就加入OpenJDK项目,以及Oracle,IBM,Red Hat,Azul和其他Java供应商.每个成员都为统一的OpenJDK代码库提供源代码,测试和反馈.

Apple为其JVM贡献了大部分特定于Mac的代码.现在Apple不再发布自己的Mac专用JVM.您现在可以选择JVM供应商,其中的构建来自OpenJDK代码库.

您可以在http://openjdk.java.net找到源代码

新发布的节奏

请注意,在2017年,Oracle,JCP和OpenJDK已采用新的快速"发布列车"计划,以便以可预测的方式提供定期安排的Java版本.

阅读这篇2018-07 Azul Systems博客文章,了解许多细节,消除Simon Ritter的Java更新混乱.

另请阅读Java Is Still Free.

供应商

有关过去和现在JVM实现的相当详尽的列表,请参阅Wikipedia上的此页面.

以下是我所知道的三个当前活跃的来源.

Oracle JVM

Oracle为包括macOS在内的多个平台提供JDK和JRE安装程序.

自收购Sun以来,Oracle已经将两个JVM引擎(HotSpotJRocket)的最佳部分组合在一起,并将它们合并到OpenJDK项目中,该项目用作自己的Java品牌实现的基础.

截至2018年,他们的新业务计划是提供一个Oracle品牌的Java实现,需要付费生产,并且不需要在开发/测试/演示中使用.对先前版本的支持需要付费支持计划.他们已宣布他们的品牌发布意图与OpenJDK版本的功能相同.他们甚至向OpenJDK项目捐赠了他们的商业附件,如Flight Recorder.

Zulu&Zing by Azul

Azul Systems提供各种JVM产品.

  • 他们的产品Zulu线直接基于OpenJDK,可选择付费支持计划免费提供.
  • 他们的产品Zing线提供商业JVM产品,增强了备用技术实现,例如专门的垃圾收集器.

他们的两个系列都为macOS提供安装程序.

我目前用祖鲁语在MacOS的Java 10.0.1 海伊谢拉的IntelliJ 2018.2和Vaadin 8.我从这个页面下载了.顺便说一下,我没有在Apple System Preferences应用程序上找到任何与Java相关的项目.

AdoptOpenJDK.net

AdoptOpenJDK是一个社区主导的工作,用于构建OpenJDK源的二进制文件.他们打算随着时间的推移提供更新,由社区成员捐赠.

  • 您可以选择HotSpotOpenJ9引擎.
  • 可用于macOS,Linux和Windows的构建.

Eclipse的OpenJ9

OpenJ9项目是一个JVM的引擎的另一种实现方式,替代热点.

现在由Eclipse基金会赞助,由IBM在2017年捐赠技术和支持.

对于预构建的二进制文件,它们会引用您上面提到的AdoptOpenJDK项目.


如何安装

Oracle或Azul提供的安装程序操作都非常简单.只需在Mac上运行安装程序即可.将出现一个窗口,指示安装进度.

完成后,通过以下方式验证JVM安装:

  • 访问该/Library/Java/JavaVirtualMachines/文件夹以查看新JVM的项目.
  • 运行Terminal.app等控制台并键入java -version以查看JVM的品牌和版本号.

验证成功后,在Finder中卸载.dmg图像.然后删除您下载的.dmg文件.

  • 这个答案很可恶。只需使用brew cask安装adoptopenjdk8即可。 (7认同)
  • @user3562927 为了获得 Java 的单一目标而安装 [*Homebrew* (包管理器)](https://en.wikipedia.org/wiki/Homebrew_(package_manager)) 就像构建一个 [着陆带](https:// en.wikipedia.org/wiki/Runway)来停车,而不仅仅是使用车道。如果您已经拥有它,那么就使用它吧。但向那些只需要 Java 的人建议“Homebrew”是个糟糕的建议。显然你不是唯一一个容易被冒犯的 Homebrew 粉丝,因为这个答案还剩 5 票反对,而且没有任何解释。但我坚持我的建议。 (2认同)
  • @丹尼尔W。该问题没有要求 Brew 解决方案,甚至没有提及 Brew。该问题询问有关安装 Java 的问题。安装 Java 时需要考虑几个重要问题;我试图涵盖的那些问题。显然我冒犯了一些 Brew 粉丝——那不是我的本意。我的目的是有针对性地解决手头的问题,就像 Stack Overflow 上的做法一样。我坚持我的立场:安装 Brew *仅仅为了安装 Java* 是多余的。此外,使用 Brew 安装 Java 会限制选择并忽略各种 Java 实现的问题。 (2认同)

Nat*_*unn 12

我有使用Java 7和8的应用程序,并且必须一直来回.

我使用Johan写的这个脚本:

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

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

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

  • 只要您只需要在系统范围内使用特定版本,就不需要设置任何脚本.基本上你需要做的就是添加你的`〜/ .bashrc`或`〜/ .bash_profile`:*export JAVA_HOME ="/ usr/libexec/java_home -v 1.8"*并添加你的`$ JAVA_HOME/bin`如果java安装程序没有这样做,则为"$ PATH".(注意:用/ usr/libexec/java_home的反引号替换双引号,不能在注释中输入文字反引号..) (8认同)
  • [jenv](https://github.com/gcuisinier/jenv)是一种非常方便的工具,可以按目录全局或本地管理多个Java版本。 (2认同)

小智 12

在Mac High Sierra上运行这些命令

brew update
brew tap caskroom/versions
brew cask install java8
Run Code Online (Sandbox Code Playgroud)

并检查命令

java -version
Run Code Online (Sandbox Code Playgroud)


Ami*_*yak 11

截至 2021 年

brew install --cask adoptopenjdk/openjdk/adoptopenjdk8
Run Code Online (Sandbox Code Playgroud)

  • 这就是今天对我有用的。 (3认同)

std*_*err 9

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

SKD 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)
                                                                                                                                                                                                         ```


Run Code Online (Sandbox Code Playgroud)


Jav*_*est 8

2021 年,这个对我有用

brew tap homebrew/cask-versions


brew install --cask adoptopenjdk8
Run Code Online (Sandbox Code Playgroud)


San*_*osh 7

使用brew

brew install Caskroom/cask/java
Run Code Online (Sandbox Code Playgroud)


Nav*_*Nav 7

最好的方法是使用Brew包管理器但命令

 brew cask install java8
Run Code Online (Sandbox Code Playgroud)

失败并出错:

Error: No available formula with the name "java8" 
Run Code Online (Sandbox Code Playgroud)

所以使用

brew cask install caskroom/versions/java8
Run Code Online (Sandbox Code Playgroud)

我如何找到"caskroom/versions/java8":使用brew search命令:

brew cask search java8
Run Code Online (Sandbox Code Playgroud)


Edm*_*Lee 7

如果您不是出于个人目的使用它,则可能要使用OpenJDK以避免Oracle提出任何潜在诉讼。

brew cask install adoptopenjdk8
Run Code Online (Sandbox Code Playgroud)


gee*_*eek 7

你可以试试这个:

\n
$ brew search jdk\n$ brew install --cask homebrew/cask-versions/adoptopenjdk8\n$ /usr/libexec/java_home\n
Run Code Online (Sandbox Code Playgroud)\n

\xc2\xa0

\n


小智 7

如果您使用的是 Mac,那么 Homebrew 是安装东西的方式。

似乎版本 8 不再是最新的,因此使用默认的brew cask install java.

相反,我通过执行以下操作进行管理:

brew install homebrew/cask-versions/
Run Code Online (Sandbox Code Playgroud)

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

brew install homebrew/cask-versions/adoptopenjdk8
Run Code Online (Sandbox Code Playgroud)

brew cask list或测试java -version


小智 5

使用自制程序安装

2018 年 10 月 3 日之前,Homebrew Cask 中可用的 Java 版本确实是 Oracle JVM。然而现在,它已经更新为 OpenJDK。请务必更新 Homebrew,然后您将看到可供安装的最新版本。

1. 如果尚未安装 Homebrew,请安装。确保它已更新:

brew update
Run Code Online (Sandbox Code Playgroud)

2. 如果您还没有添加木桶水龙头(或者在步骤 #3 中您不再看到旧的 Java 版本):

brew tap homebrew/cask-versions
Run Code Online (Sandbox Code Playgroud)

3. 对于 AdoptOpenJDK 版本,添加该点击:

brew tap adoptopenjdk/openjdk
Run Code Online (Sandbox Code Playgroud)

这些木桶经常更改其 Java 版本,并且可能还有其他带有其他 Java 版本的水龙头。

4.寻找可安装的版本:

brew search java 
Run Code Online (Sandbox Code Playgroud)

或者对于 AdoptOpenJDK 版本:

brew search jdk     
Run Code Online (Sandbox Code Playgroud)

5. 检查将要安装的版本的详细信息:

brew cask info java
Run Code Online (Sandbox Code Playgroud)

或者对于 AdoptOpenJDK 版本:

brew cask info adoptopenjdk
Run Code Online (Sandbox Code Playgroud)

6. 安装特定版本的 JDK,例如 java11、adoptopenjdk8,或者当前仅安装 java 或 Acceptopenjdk。例如:

**brew cask install java**

**brew cask install java8**

**brew cask install java11**
Run Code Online (Sandbox Code Playgroud)

您也可以使用旧版本的完全限定路径:

brew cask install homebrew/cask-versions/java11
Run Code Online (Sandbox Code Playgroud)


Nir*_*ane 5

随着 Homebrew 2.7.0 的发布, brew cask命令在20201221 日被禁用

使用以下命令安装JDK

brew install --cask 采用openjdk/openjdk/adoptopenjdk8


Yos*_*n42 5

brew search openjdk 找到一些openjdk公式,2021年,brew提供openjdk11和openjdk8作为选项。


Vla*_*kyi 5

MacOS Big Sur 2021 Java 8安装指南:

  1. 转至https://profile.oracle.com/myprofile/account/create-account.jspx并注册(如果尚未注册);
  2. 转到https://www.oracle.com/java/technologies/downloads/#jdk17-mac
  3. 选择“Java 8”;
  4. 选择“macOS”;
  5. 按“jdk-8u301-macosx-x64.dmg”; Java 8 下载页面
  6. 勾选复选框;
  7. 按“下载jdk-8u301-macosx-x64.dmg”;
  8. 打开下载的文件;
  9. 遵循安装指南;

享受=)


psu*_*zzi 5

Eclipse Temurin是采用 openjdk 的官方继承者。因此,截至 2022 年 5 月,我将使用以下内容

brew install --cask temurin8
Run Code Online (Sandbox Code Playgroud)

安装完成后,JDK 8 已安装在/Library/Java/JavaVirtualMachines/temurin-8.jdk