【问题标题】:How to install Java 8 on Mac如何在 Mac 上安装 Java 8
【发布时间】:2014-08-12 03:12:06
【问题描述】:

编者注:这个问题是在 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!

为什么甲骨文的安装程序不把它放在真正需要的地方?我该如何解决这个问题?

【问题讨论】:

  • 它“真的去了”它最终到达的地方——/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/。前一个是 Apple 提供的 Java 版本所在的位置,由于 Apple 不再提供 Java,安装位置已更改。
  • brew install openjdk@8

标签: java macos java-8 installation


【解决方案1】:

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
【解决方案2】:

我的应用程序同时使用 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/ 和自制软件。

那么它只是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 的反引号替换双引号,不能在 cmets 中输入文字反引号..)
  • 如果你想通过 homebrew 安装 java 7(与 java 8 一起),命令是 brew tap caskroom/versions 后跟 brew cask install java7
  • jenv 是一个非常方便的工具,用于管理多个 Java 版本,无论是全局还是本地每个目录。
【解决方案3】:

注意: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

Java 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 上为我工作
【解决方案4】:

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

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

好处是:

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

一个非常简单的例子:

创建一个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

免责声明:

【讨论】:

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

使用 brew

brew install Caskroom/cask/java

【讨论】:

    【解决方案6】:

    以下步骤对我有用。

    1) 卸载所有jdks

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

    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

    这就是它的魅力所在。

    【讨论】:

      【解决方案7】:

      最简单的方法

      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)
      

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

      【讨论】:

      • 它总是安装最新版本
      【解决方案8】:

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

      首先,您需要 brew 和 cask 和 jenv

      1. 您可以在这里找到有用的指南,Homebrew Cask Installation Guide。 记得点击终端中运行的“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、此博客 Install multiple JDK on a MacJenv Website 上找到其他有用信息

      【讨论】:

      • jenv 非常简单而且超级有用。我有多个需要 java 8 和 11 的项目
      【解决方案9】:

      我刚刚在我的 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。
      【解决方案10】:

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

      在我的情况下,如果我想使用它应该如下所示:

      Java 7:

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

      Java 8:

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

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

      Java 7:

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

      Java 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
      【解决方案11】:
      brew cask install caskroom/versions/java8
      

      【讨论】:

        【解决方案12】:

        最简单的方法是从以下站点下载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
        

        【讨论】:

          【解决方案13】:

          tl;博士

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

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

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

          使用安装程序,卢克

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

          尚未使用 Home-brew 的人只需从受信任的来源下载 Mac 安装程序即可。

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

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

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

          运行安装程序。

          JavaVirtualMachines 文件夹现在是正确的

          为什么甲骨文的安装程序不把它放在真正需要的地方?我该如何解决这个问题?

          没问题。

          文件夹/Library/Java/JavaVirtualMachines/JVMs 在macOS 上的新家。

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

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


          Java 9 & 10 & 11

          早在 2010 年,Apple joinedOpenJDK projectOracleIBMRed 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-07 Azul Systems 博客文章了解更多详细信息,Eliminating Java Update Confusion by Simon Ritter

          另请阅读Java Is Still Free

          供应商

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

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

          Oracle JDK

          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

          Zulu & Zing by Azul

          Azul Systems提供多种JVM产品。

          • 他们的Zulu 线路直接基于 OpenJDK,可通过可选的付费支持计划免费获得。
          • 他们的 Zing 线提供商业 JVM 产品,这些产品通过替代技术实现(例如专用的 garbage-collector)得到增强。

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

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

          采用

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

          • 您可以选择HotSpotOpenJ9 引擎。
          • 适用于 macOS、Linux 和 Windows 以及其他平台的构建版本。

          OpenJ9 by Eclipse

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

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

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


          如何安装

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

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

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

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

          【讨论】:

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

          最好的方法是使用 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
          

          【讨论】:

            【解决方案15】:

            在 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
            【解决方案16】:

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

            【讨论】:

              【解决方案17】:

              假设: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 版本的人(比如我)
              【解决方案18】:

              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
              【解决方案19】:

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

              brew cask install adoptopenjdk8
              

              【讨论】:

              • 找到 /usr/local/Homebrew/Library/Taps/ | grep -i jdk | xargs rm -v 如果发生“错误:Cask 采用openjdk8 存在于多个水龙头中:”错误...
              【解决方案20】:

              试试:

              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 来自另一条评论显然工作正常。
              【解决方案21】:

              你可以试试这个:

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

               

              【讨论】:

                【解决方案22】:

                如果您使用的是 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/" 的可用公式),但第二个似乎有效。更新了答案以避免第一次失败吓跑人们。
                【解决方案23】:

                截至 2020 年 5 月 3 日,此站点有 jre8u251 的下载链接: https://java.com/en/download/mac_download.jsp

                【讨论】:

                  【解决方案24】:

                  使用 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 或采用openjdk。例如:

                  **brew cask install java**
                  
                  **brew cask install java8**
                  
                  **brew cask install java11**
                  

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

                  brew cask install homebrew/cask-versions/java11
                  

                  【讨论】:

                  • 大概是我做错了什么,但是在尝试执行 java8 时出现错误:Error: Cask 'java8' is available: No Cask with this name exists.
                  【解决方案25】:

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

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

                  注意:

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

                  【讨论】:

                  • 很高兴能帮到你:)
                  • 应该是唯一被接受的解决方案,就像魅力一样。
                  【解决方案26】:

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

                  使用以下命令安装JDK

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

                  【讨论】:

                    【解决方案27】:

                    2021 年,这个对我有用

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

                    【讨论】:

                      【解决方案28】:

                      在 2022 年,您只能使用 brew

                      brew install openjdk@8
                      

                      也许你需要更新PATH env:

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

                      ……以后试试sdkman,比brew

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

                      然后打开一个新外壳并尝试list 看看你可以安装什么;-)

                      sdk list java 
                      

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

                      sdk install java 8.0.312-tem
                      

                      【讨论】:

                      • $ jenv add /usr/local/opt/openjdk@11 => ln: /Users/nakilon/.jenv/versions/openjdk64-11.0.9: No such file or directory。啊,好的,需要运行那些将要进入 bash_profile 的命令。
                      • 你在 jenv 之前运行过 brew 吗?
                      • 有效的 brew 方法还必须更新路径变量
                      • 安装包后需要运行 export PATH="/usr/local/opt/openjdk@8/bin:$PATH" brew list 安装包 brew info $package_name 包信息
                      • @souravpandit 感谢您的建议,我刚刚更新了我的答案;)
                      【解决方案29】:

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

                      【讨论】:

                      • 搜索后的下一条命令应该是什么?
                      【解决方案30】:

                      截至 2021 年

                      brew install --cask adoptopenjdk/openjdk/adoptopenjdk8
                      

                      【讨论】:

                      • 这是今天为我工作的那个。
                      猜你喜欢
                      • 2020-09-04
                      • 2015-01-31
                      • 1970-01-01
                      • 2021-06-25
                      • 1970-01-01
                      • 2014-09-19
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多