Java 与自制软件一起安装时,OpenJDK 16在MacOS Apple Silicon上显示为17

Java 与自制软件一起安装时,OpenJDK 16在MacOS Apple Silicon上显示为17,java,homebrew,apple-silicon,Java,Homebrew,Apple Silicon,想要在MacOS上安装openjdk 16(MacOS Big Sur 11.0.1;Apple M1)。一切顺利,但显示的版本不匹配。显示OpenJDK 17,但路径为/opt/homebrew/ceral/OpenJDK/16.0.1/。不确定我是否有openjdk 16或17 步骤: 1. $brew update 2. $brew install openjdk 但是$java-version显示为17 $ java -version openjdk version "1

想要在MacOS上安装openjdk 16(MacOS Big Sur 11.0.1;Apple M1)。一切顺利,但显示的版本不匹配。显示OpenJDK 17,但路径为/opt/homebrew/ceral/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信息openjdk
显示: 这是针对苹果硅的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).
...
进一步挖掘,公式openjdkat的部分代码实际上安装了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"

使用自制软件在Github中重新发布答案表单讨论

参考:

当您使用命令
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就是这样