如何解决与 Homebrew 一起安装时,OpenJDK 16 在 MacOS Apple Silicon 上显示为 17
想要在 MacOS(macOS Big Sur 11.0.1;Apple M1)上安装 openjdk 16。一切顺利,但显示的版本不匹配。显示 OpenJDK 17 但路径是 /opt/homebrew/Cellar/openjdk/16.0.1/。不确定我有 openjdk 16 还是 17?
步骤:
1. $brew update
2. $brew install openjdk
但是 $java -version
显示为 17
$ java -version
openjdk version "17" 2021-09-14
OpenJDK Runtime Environment Homebrew (build 17+0)
OpenJDK 64-Bit Server VM Homebrew (build 17+0,mixed mode)
OR
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
17 (arm64) "Homebrew" - "OpenJDK 17"
/opt/homebrew/Cellar/openjdk/16.0.1/libexec/openjdk.jdk/Contents/Home
/opt/homebrew/Cellar/openjdk/16.0.1/libexec/openjdk.jdk/Contents/Home
令人困惑的部分是 brew info openjdk
显示:
这是 Apple Silicon 的 openjdk 测试版(openjdk 17 预览版)。
$ brew info openjdk
openjdk: stable 16.0.1 (bottled) [keg-only]
Development kit for the Java programming language https://openjdk.java.net/ /opt/homebrew/Cellar/openjdk/16.0.1 (618 files,281.4MB)
Poured from bottle on 2021-05-31 at 23:05:51
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/openjdk.rb License: GPL-2.0-only with Classpath-exception-2.0
...
This is a beta version of openjdk for Apple Silicon (openjdk 17 preview).
...
深入挖掘,Homebrew 处的 https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/openjdk.rb 公式 openjdk 的部分代码实际上是在安装 17,但故意将版本显示为 16.0.1?>
if Hardware::cpu.arm?
# Temporarily use a openjdk 17 preview on Apple Silicon
# (because it is better than nothing)
url "https://github.com/openjdk/jdk/archive/refs/tags/jdk-17+24.tar.gz"
sha256 "9d1ea3fc63ce860e55a9be77f670b18fa7b7e5c9773dca3c70042403e1ee285c"
version "16.0.1"
解决方法
使用 Homebrew 在 Github 中重新发布答案表单讨论。
参考:https://github.com/Homebrew/discussions/discussions/1594#discussioncomment-816728
当您使用命令 brew info openjdk
时,即 brew 中的非版本化公式将始终是上游可用的最新版本。在本例中,ARM 为 17(作为预览),x86 为 16。
$brew info openjdk
openjdk: stable 16.0.1 (bottled) [keg-only]
Development kit for the Java programming language
https://openjdk.java.net/
/opt/homebrew/Cellar/openjdk/16.0.1 (618 files,281.4MB)
Poured from bottle on 2021-05-31 at 23:05:51
在 M1/ARM 上,它实际上安装了 17 版,但文件夹将命名为“16”。是的,这可能是一个问题,但截至目前(2021 年 6 月),brew 就是这样。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。