ChatGPT解决这个技术问题 Extra ChatGPT

如何在 Mac 上安装 Java 8

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

我想使用需要 Java 8 的最新 JavaFX 进行一些编程。我使用的是 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 的安装程序不把它放在它真正的位置?我该如何解决这个问题?

它“真的去了”它最终到达的地方——/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/。前一个是 Apple 提供的 Java 版本所在的位置,由于 Apple 不再提供 Java,因此安装位置已更改。
酿造安装 openjdk@8
brew install --cask temurin8 # Temurin 是采用openjdk 的官方继承者

P
Palash Goel

Oracle 在简化 Java 安装和配置方面的记录不佳,但使用 Homebrew,可以安装最新的 OpenJDK (Java 14):

brew install --cask adoptopenjdk8

对于取决于旧版本(通常是 Java 8)的许多用例,AdoptOpenJDK 项目通过一个额外的步骤使其成为可能。

brew tap adoptopenjdk/openjdk
brew install --cask adoptopenjdk8

Homebrew 的现有用户可能会遇到 Error: Cask adoptopenjdk8 exists in multiple taps,因为之前的解决方法有不同的说明。这可以通过使用 brew install --cask adoptopenjdk/openjdk/adoptopenjdk8 完全指定位置来解决。


截至 2015 年 12 月,现在不需要手动安装 cask,因为它现在是 homebrew 安装的一部分。因此,在通过 brew update 更新自制软件后,您将设置为使用 brew cask
谢谢,令人惊讶的是,使用“官方”链接/文档的 Java 安装过程是多么可怕。
@tandrewnichols 我刚刚在我的 El Capitan Mac 上运行了 brew cask install java,它正在下载 jdk-8u112-macosx-x64.dmg
Error: Cask 'java8' is unavailable: No Cask with this name exists.
目前的解决方法是 brew tap homebrew/cask-versions 并使用 brew cask install homebrew/cask-versions/adoptopenjdk8
S
Sly-Little-Fox

注意:Oracle Java 8/9/10 不再可供公共下载(许可证更改)。

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

bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

brew tap homebrew/cask-versions

brew update

截至 2019 年 6 月的新产品

要从 AdoptOpenJDK 安装 JDK:

brew tap adoptopenjdk/openjdk

brew install --cask adoptopenjdk8
brew install --cask adoptopenjdk9
brew install --cask adoptopenjdk10
brew install --cask adoptopenjdk11

老的

爪哇 8:

brew install --cask java8

Java 最新:

brew install --cask java

有趣的是,这在 Mavericks 上对我不起作用,所以它没有回答 OP 的问题,但它在 Captain 上对我有用,所以它作为答案很有用..
我在新的 OS X El Capitan 机器上安装了全新的自制软件,并且不必在上面的答案中运行 brew tap 命令。第一个和第三个命令就足够了。
Error: Cask 'java8' is unavailable: No Cask with this name exists.
$ brew cask install adoptopenjdk8 Error: Cask adoptopenjdk8 exists in multiple taps: caskroom/versions/adoptopenjdk8 adoptopenjdk/openjdk/adoptopenjdk8 。我必须使用 brew cask install adoptopenjdk/openjdk/adoptopenjdk8
brew tap homebrew/cask-versionsbrew cask install adoptopenjdk8 在 Hi Sierra 10.13.6 上为我工作
D
Dave Kerr

Java8 在 Homebrew 上不再可用,brew install java8 将不起作用。

相反,使用:

brew cask install adoptopenjdk/openjdk/adoptopenjdk8

有关技术详情,请参阅 this commit

另请注意,您可能会看到有关 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

使用 AdoptOpenJDK/openjdk 而不是使用 homebrew/cask-versions/adoptopenjdk8 有什么区别吗
当我尝试您的回答时,我得到以下信息:Cask adaptopenjdk8 exists in multiple taps: caskroom/versions/adoptopenjdk8 adaptopenjdk/openjdk/adoptopenjdk8
@SeanBreckenridge - HomeBrew 团队正在研究它,目前看起来将使用 AdoptOpenJDK,但仍有一些不确定性,请参阅当前未解决的问题 github.com/AdoptOpenJDK/homebrew-openjdk/issues/106 了解详细信息!
brew cask install homebrew/cask-versions/adoptopenjdk8 为我工作
这对我有用 brew install --cask 采用openjdk/openjdk/adoptopenjdk8
P
Petrus Theron

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

$ brew tap homebrew/cask-versions
$ brew cask install java8

为了让java8安装。


它帮助我安装了特定版本的 java。现在,当 java 9 退出时,运行“brew cask install java”会安装 java 9。“brew cask install java8”在我运行“brew tap caskroom/versions”之前对我不起作用。
是的,在安装 java8 之前需要 brew tap caskroom/versions
或只需 brew install homebrew/cask-versions/java8 即可获胜!
由于 Oracle 许可证更改,无法再使用 Brew 安装 Java8。 Java8 不再可供公众下载。
如果您仍想使用 java8,请参阅 stackoverflow.com/a/55775566/9306378。请注意,这虽然使用了 OpenJDK。
S
Simon B.

在 2022 年,您可以只使用 brew

brew install openjdk@8

也许您需要更新 PATH 环境:

export PATH="/usr/local/opt/openjdk@8/bin:$PATH"

…未来试试sdkman,比brew好

curl -s "https://get.sdkman.io" | bash

然后打开 新 shell 并尝试 list 看看您可以安装什么 ;-)

sdk list java 

在编写安装 java 8 时,您可以使用:

sdk install java 8.0.322-tem 

注意:更新安装命令以匹配运行 sdk list java 的某些现有标识符显示


$ jenv add /usr/local/opt/openjdk@11 => ln: /Users/nakilon/.jenv/versions/openjdk64-11.0.9: No such file or directory。啊,好的,需要运行那些将要进入 bash_profile 的命令。
brew 方法有效还必须更新路径变量
你需要在安装 brew list 后运行 export PATH="/usr/local/opt/openjdk@8/bin:$PATH" 来安装包 brew info $package_name 来获取包的信息
就如此容易!
必须做 brew install --build-from-source openjdk@8 才能使其工作
r
rmtmckenzie

假设:Mac 机器并且你已经安装了 homebrew。

安装木桶(使用 Homebrew 0.9.5 或更高版本,包括木桶,因此跳过此步骤):

$ brew tap caskroom/cask
$ brew tap caskroom/versions

要安装最新的 java:

$ brew cask install java

要安装 Java 8:

$ brew cask install adoptopenjdk/openjdk/adoptopenjdk8

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

安装和配置 jenv:

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

将已安装的 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

要查看所有已安装的 java:

$ jenv versions

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

* system (set by /Users/lyncean/.jenv/version)
1.8
1.8.0.202-ea
oracle64-1.8.0.202-ea

配置要使用的 java 版本:

$ jenv global oracle64-1.6.0.39

设置 JAVA_HOME:

$ jenv enable-plugin export

最佳解决方案!谢谢!
谢谢你。从简短的解决方案开始,然后继续使用另一个有用的工具:'jenv' 很方便,并且在大多数其他答案中都缺少。 2020 年帮助打包 Scala (2.12/2.13) 代码。
像魅力一样工作, brew cask install 采用openjdk/openjdk/adoptopenjdk8
这确实是最好的答案!非常适合拥有并需要管理多个 Java 版本的人(比如我)
2022:Mac 12.x:brew cask` 不再是 brew 命令。请改用 brew <command> --cask。 brew install 采用openjdk/openjdk/adoptopenjdk8 --cask
t
toast38coza

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

尽管这可能无法帮助您解决当前的安装问题,但它是一个解决方案,这意味着您可以避开与尝试让 Java 在您的开发机器上正确运行相关的问题的雷区!

好处是:

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

一个非常简单的例子:

创建一个 Dockerfile

FROM java:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp

在这里,我们指定运行 SDK 版本 8 的 Java 容器(java:8 - 要使用 Java 7,您可以指定:java:7)

我们将本地目录映射到容器内的目录:/usr/src/myapp

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

version: "2"

services:
  java:
    build: .
    volumes:
      - .:/usr/src/myapp

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

HelloWorld.java

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

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

.
|_ Dockerfile
|_ docker-compose.yml
|_ HelloWorld.java

您可以执行各种 Java 操作,例如:

编译:

docker-compose run --rm java javac HelloWorld.java 

您应该注意到 HelloWorld.class 出现在您的当前目录中(这是因为我们已将当前目录映射到容器内我们的代码所在的位置

跑:

docker-compose run --rm java java HelloWorld 

注意:第一次运行它会获取图像等。这需要一段时间 - 它只发生在第一次

docker-compose run - 从容器内运行命令

-rm 告诉 docker 在命令运行完成后删除容器

java 是运行此命令的服务/容器的名称(来自我们的 docker-compose 文件)

该行的其余部分是在容器内运行的命令。

这是一种非常酷的方式,可以为不同的应用程序运行不同版本的 Java,而不会弄乱你的本地设置:)。

这是一个稍微复杂一点的例子,它有 Maven and a simple Spring app

免责声明:

我还没有在 IntelliJ 这样的 IDE 中真正尝试过这个 - 所以不完全确定这方面的工作方式。虽然看起来 docker 支持即将到来

这是一个使用 Spring Boot、Zuul 和 Docker 运行微服务的复杂得多的示例


使用 Docker 的好例子,不知道为什么你之前被否决了。
我会想象反对票,因为这不能回答在 OS X/MacOS 上运行 Java 的问题。用“只需使用 VM/shim 在平台 Y 上执行此操作”来回答“我如何在平台 X 上执行此操作”是没有效率的。
尤其适用于原生 java 开发(例如使用 SWIG、JNI 和 LIBRARY_PATH)
B
Basil Bourque

tl;博士

/Library/Java/JavaVirtualMachines/ 是要安装 JVM 的正确位置。这种情况已经有好几年了。许多年前,使用了其他位置,但不再使用。

您可以选择多家供应商来获取安装程序应用程序,以便在您的 Mac 上安装 Java 实现。下载安装程序以在本地运行,然后丢弃,就像您通常对许多应用程序所做的那样。

您的问题提到了 JavaFX/OpenJFX。您可能会发现使用与 OpenJFX 库捆绑在一起的 Java 实现很方便,例如来自 BellSoft 的 LibericaFX 或来自 Azul Systems 的 ZuluFX

使用安装程序,卢克

其他建议 Homebrew 包管理器的答案对我来说似乎有点极端。我确信 Homebrew 有一些很好的用途。但是要简单地运行 Java 或进行 Java 编程,安装 Homebrew 是一个不必要的额外步骤。为获得 Java 的单一目标而安装 Homebrew (package manager) 就像构建一个 landing strip 来停放您的汽车而不是使用您的车道。如果你已经拥有它,很好,使用它。但是向那些只需要 Java 的人推荐 Homebrew 是很糟糕的建议。

尚未使用 Home-brew 的人可以简单地从受信任的来源下载 Mac 安装程序。

您有多个来源来获取易于使用的安装程序应用程序,以便将 Java 安装到您的 Mac 上。就像在许多其他应用程序上一样,在 Mac 上运行安装程序。

这是查找 Java 11 源代码的流程图,其中一些还提供 Java 8。

https://i.stack.imgur.com/iIxDY.png

从 Adoptium (AdoptOpenJDK.net) 等供应商处下载安装程序。

https://i.stack.imgur.com/tcEFj.png

运行安装程序。

https://i.stack.imgur.com/G0KsL.png

JavaVirtualMachines 文件夹现在是正确的

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

不是问题。

文件夹 /Library/Java/JavaVirtualMachines/macOSJVM 的新家。

https://i.stack.imgur.com/sDnDw.png

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

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

Java 9 & 10 & 11

早在 2010 年,Apple joined OpenJDK project 以及 OracleIBMRed HatAzul 和其他 Java 供应商。每个成员都为统一的 OpenJDK 代码库贡献源代码、测试和反馈。

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

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

新发布节奏

请注意,在 2017 年,Oracle、JCP 和 OpenJDK 采用了 new rapid “release train” plan,以便以可预测的方式交付定期计划的 Java 版本。

阅读此 2018 年 7 月 Azul Systems 博客文章以了解更多详细信息,Eliminating Java Update Confusion by Simon Ritter

另请阅读Java Is Still Free

供应商

有关过去和现在 JVM 实现的详尽列表,请参阅 this page at Wikipedia

这是一些供应商的讨论。有关更多供应商,请参见上面的流程图

甲骨文

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

自收购 Sun 以来的这些年里,Oracle 将两个 JVM 引擎的最佳部分(HotSpotJRocket)结合在一起,并将它们合并到 OpenJDK 项目中,用作他们自己品牌的 Java 实现的基础。

截至 2018 年,他们的新业务计划是提供 Oracle 品牌的 Java 实施,在生产中收费,在开发/测试/演示中免费使用。对以前版本的支持需要付费支持计划。他们已经宣布他们打算让他们的品牌版本与 OpenJDK 版本在功能上保持一致。他们甚至将自己的商业附加组件(例如 Flight Recorder)捐赠给了 OpenJDK 项目。

Oracle 还发布了不支持的 OpenJDK 版本:http://jdk.java.net/

Oracle 生产了一个特殊用途的 JDK,GraalVM

Azul 的 Zulu & Zing

Azul Systems 提供各种 JVM 产品。

他们的 Zulu 系列直接基于 OpenJDK,并且通过可选的付费支持计划免费提供。

他们的 Zing 产品线提供商业 JVM 产品,这些产品通过替代技术实现(例如专门的垃圾收集器)进行了增强。

他们的两条线都为 macOS 提供安装程序。

我目前在带有 IntelliJ 2018.2 和 Vaadin 8 的 macOS High Sierra 上将 Zulu 用于 Java 10.0.1。我downloaded from this page。顺便说一句,我确实没有在 Apple System Preferences 应用程序上找到任何与 Java 相关的项目。

收养

Adoptium,以前称为 AdoptOpenJDK,是社区主导的构建 OpenJDK 源代码二进制文件的项目。许多其他 Java 实现供应商在 Adoptium 支持这项工作。

您可以选择 HotSpot 或 OpenJ9 引擎。

可用于 macOS、Linux 和 Windows 以及其他平台的构建。

Eclipse 的 OpenJ9

OpenJ9 项目是 JVM 引擎的另一种实现,是 HotSpot 的替代方案。

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

对于预构建的二进制文件,他们将您推荐给上面提到的 AdoptOpenJDK 项目。

https://i.stack.imgur.com/l93et.png

如何安装

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

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

访问 /Library/Java/JavaVirtualMachines/ 文件夹以查看新 JVM 的项目。

运行 Terminal.app 等控制台并键入 java -version 以查看 JVM 的品牌和版本号。

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


这个答案很可恶。只需使用 brew cask install 采用openjdk8。
@user3562927 为获得 Java 的单一目标而安装 Homebrew (package manager) 就像构建一个 landing strip 来停放您的汽车,而不仅仅是使用您的车道。如果你已经拥有它,很好,使用它。但是向那些只需要 Java 的人推荐 Homebrew 是很糟糕的建议。显然,您不是唯一容易被冒犯的 Homebrew 粉丝,因为在此答案上留下了 5 票反对票而没有任何解释。但我坚持我的建议。
@BasilBourque brew 比您想象的更有用。它安装了很多软件非常容易,你的答案就是证明:-/
@丹尼尔W。该问题没有要求 Brew 解决方案,甚至没有提及 Brew。问题询问有关安装 Java 的问题。安装 Java 有几个重要的问题需要考虑;我试图涵盖的那些问题。显然我得罪了一些 Brew 粉丝——那不是我的本意。我的意图是明确地解决手头的问题,就像 Stack Overflow 上的做法一样。我坚持我的立场:安装 Brew 只是为了安装 Java 是矫枉过正的。此外,当涉及到各种 Java 实现时,使用 Brew 安装 Java 会限制选择并忽略问题。
B
Benedetto Abbenanti

我有同样的问题要解决,因为我需要安装 JDK8 才能运行 Android SDK Manager(因为它似乎不适用于 JDK9)。但是,我告诉你我如何解决 Mac (Sierra) 上的所有问题。

首先,您需要 brew 与 cask 和 jenv。

您可以在此处找到有用的指南,Homebrew Cask 安装指南。请记住点击终端中运行的“caskroom/versions”: brew tap caskroom/versions 之后,使用以下命令安装 jenv: brew install jenv 使用 cask 安装任何您想要的版本最新版本,jdk9)最后一步是配置要运行的版本(并让 jenv 管理您的 JAVA_HOME) jenv 版本以列出您机器上安装的所有版本,然后使用 jenv global [JDK_NAME_OF_LIST] 激活您想要的版本

您可以在此 Github Gist brew-java-and-jenv.md、此博客 Install multiple JDK on a MacJenv Website 上找到其他有用的信息


jenv 非常简单而且非常有用。我有多个需要 java 8 和 11 的项目
A
Arefe

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

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

笔记:

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


很高兴帮助你:)
应该是唯一被接受的解决方案,就像魅力一样。
H
Hoa Nguyen

如果您的机器上有多个 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/

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

export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

就我而言,如果我想使用它应该如下所示:

爪哇 7:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

爪哇 8:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

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

爪哇 7:

java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)

爪哇 8:

java -version 
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)

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


为什么不为不同的版本创建别名,例如 alias java8=/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/bin/java
B
Benjamin W.
brew cask install caskroom/versions/java8

s
stderr

似乎还没有人提到 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)
                                                                                                                                                                                                         ```



我收到这个弹出窗口:---------------- 停止! java 8.0.191-oracle 不可用。可能的原因: * 8.0.191-oracle 版本无效 * java 二进制文件与您的平台不兼容 * java 尚未发布 ---------- ------
事实上 8.0.191-oracle 不再在列表中。您可以使用 sdk list java 检查其他分布
N
Nathan Dunn

我的应用程序同时使用 Java 7 和 8,并且必须一直来回切换。

我使用 Johan 编写的这个脚本:

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

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

爪哇 7

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

爪哇 8

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

更新推荐!!:

使用 jenv https://www.jenv.be/ 和自制软件。

然后它只是 jenv global oracle6401.6.0.39 和它的集合。


+1:我使用这个脚本并且我同意,它对于拥有多个需要不同版本 Java 的项目的开发人员来说非常有用。
只要您只需要在系统范围内使用特定版本,实际上就不需要设置任何脚本。基本上您需要做的就是添加到您的 ~/.bashrc~/.bash_profileexport JAVA_HOME="/usr/libexec/java_home -v 1.8" 并将您的 $JAVA_HOME/bin 添加到 $PATH如果java安装程序还没有这样做。 (注意:用 /usr/libexec/java_home 的反引号替换双引号,不能在注释中输入文字反引号..)
如果您想通过自制软件安装 java 7(与 java 8 一起),命令是 brew tap caskroom/versions,后跟 brew cask install java7
jenv 是一个非常方便的工具,用于管理多个 Java 版本,无论是全局还是本地每个目录。
J
JavaQuest

对于 2021 年(也是 2022 年),这个对我有用

brew tap homebrew/cask-versions


brew install --cask adoptopenjdk8

这在 2022 年有效,安装后可以使用以下命令来验证您的安装 javajava -version 。但是命令 java --versionwhich java 没有给出正确的结果。
T
TLbiz

在 mac High Sierra 上运行这些命令

brew update
brew tap caskroom/versions
brew cask install java8

并用命令检查

java -version

得到这个:Error: Download failed on Cask 'java8' with message: Download failed: https://download.oracle.com/otn-pub/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-macosx-x64.dmg
S
Suraj Rao

截至 2021 年

brew install --cask adoptopenjdk/openjdk/adoptopenjdk8

这是今天为我工作的那个。
D
Dennis Jaheruddin

如果你在 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 采用openjdk/openjdk/adoptopenjdk8)
+1 第一个失败(错误:没有名称为 "homebrew/cask-versions/" 的可用公式),但第二个似乎有效。更新了答案,以避免在第一次失败时吓跑人们。
N
Niraj Sonawane

brew cask 命令在 2020 年 12 月 21 日随着 Homebrew 2.7.0 的发布而被禁用。

使用以下命令安装 JDK

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


S
Santhosh

使用冲泡

brew install Caskroom/cask/java

N
Nav

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

 brew cask install java8

失败并出现错误:

Error: No available formula with the name "java8" 

所以使用

brew cask install caskroom/versions/java8

我是如何找到“caskroom/versions/java8”的:使用 brew search 命令:

brew cask search java8

E
Edmund Lee

如果您不将其用于个人用途,您可能希望使用 OpenJDK 来避免来自 Oracle 的任何潜在诉讼。

brew cask install adoptopenjdk8

查找 /usr/local/Homebrew/Library/Taps/ | grep -i jdk | xargs rm -v 如果发生“错误:Cask 采用openjdk8 存在于多个水龙头中:”错误...
G
Geek

你可以试试这个:

$ brew search jdk
$ brew install --cask homebrew/cask-versions/adoptopenjdk8
$ /usr/libexec/java_home


W
Wazery

使用 Homebrew 安装

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

1. 如果您还没有安装 Homebrew。确保它已更新:

brew update

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

brew tap homebrew/cask-versions

3. 对于 AdoptOpenJDK 版本,添加该水龙头:

brew tap adoptopenjdk/openjdk

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

4. 寻找可安装的版本:

brew search java 

或 AdoptOpenJDK 版本:

brew search jdk     

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

brew cask info java

或 AdoptOpenJDK 版本:

brew cask info adoptopenjdk

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

**brew cask install java**

**brew cask install java8**

**brew cask install java11**

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

brew cask install homebrew/cask-versions/java11

大概我做错了什么,但是在尝试执行 java8 时出现错误:错误:木桶'java8'不可用:不存在具有此名称的木桶。
Y
Yossarian42

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


搜索后的下一个命令应该是什么?
S
Sash Sinha

最简单的方法是从以下站点下载 dmg 文件并通过双击安装

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

从主目录查找可用的 JVM

ls -al /Library/Java/JavaVirtualMachines

并使用相关版本更新 .bash_profile

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_XXX.jdk./Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

最后

source ~/.bash_profile

V
Vladimir Kuzomenskyi

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”;打开下载的文件;遵循安装指南;

享受 =)


为了测试安装是否成功,在终端“javac -version”上运行以下命令
c
charlesreid1

最简单的方法

1) brew cask install java

2) java -version

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

PS - Cask 是 Homebrew 的扩展,旨在管理大型 Mac 二进制文件和图形应用程序,但使用 Homebrew 界面。另请参阅 Apple StackExchange 上的 this answer


它总是安装最新版本
G
Greenonline

尝试 :

brew cask install java 8

它将给出以下结果

8tracksradiohelper       adoptopenjdk8            amitv87-pip              
corretto8                icons8                   vmware-fusion8           
x48                      zulu8

接下来输入:

brew cask install adoptopenjdk8

---- java 8 将安装在 Mac 中。


brew cask install java 8 给了我一个完全不同的列表:eclipse-javanetbeans-java-eeoracle-jdk-javadoceclipse-javascriptnetbeans-java-se
这不再有效。我在 Mac OS Catalina 10.15.4 上运行了 Homebrew 2.7.1,使用 brew tap 后跟来自另一条评论的 brew install --cask 显然工作正常。
K
Kevin Davies

最简单的答案是 Zulu java prebuilts。他们甚至附带一个安装程序,可以为您完成所有工作。

https://www.azul.com/downloads/?version=java-8-lts&os=macos&package=jdk