Java/JDK for the Apple M1 芯片
是否需要特别发布OpenJDK来支持新的Apple M1芯片?
我看到目前有适用于macOS / OS X的JDK的下载,但这些似乎仅适用于x86处理器。这是对的吗?如果是这样,我在哪里可以下载适用于M1的OpenJDK版本?
是否需要特别发布OpenJDK来支持新的Apple M1芯片?
我看到目前有适用于macOS / OS X的JDK的下载,但这些似乎仅适用于x86处理器。这是对的吗?如果是这样,我在哪里可以下载适用于M1的OpenJDK版本?
是的。
在此页面上:采用OpenJDK最新版本,您可以从“操作系统”下拉列表中选择“macOS”,然后从“体系结构”中选择“体系结构”,它目前只有x64,但很快应该有AArch64或ARM64(这些通常是64位ARM的短代码)。可能,因为苹果无疑在他们的M1设计中内置了一堆扩展,苹果有自己的扩展。
如果你把操作系统放在“any”上,你会注意到aarch64就在那里,这让你进入了ARM处理器的Linux版本。这(可能)不会在M1硬件的macOS上运行,但这是已经完成的工作的95%。
所以:它还没有出现,但请注意,ARM的JDK已经存在了十多年,虽然JDK 15已经放弃了对一堆异国情调的操作系统/架构组合(如Solaris)的支持,但ARM开发始终至少部分相关(即使到目前为止它主要是Oracle商业许可证产品)。也就是说:创建一个在M1上运行的adoptopenjdk版本不应该是一项艰巨的努力,所以大概,它会发生。但是,这是一项开源工作,所以如果你很焦虑,一定要阅读并贡献:)
苹果直到2020年11月10日才提供有关此架构的任何细节,除非您为其购买了开发套件盒(带有A14芯片的Mac Mini,这不是M1芯片,但我想足够接近),并签署了一份大NDA。
通常,如果你挥舞着NDA,开源项目将尽可能快地朝着相反的方向运行,所以如果你不喜欢这种状态,我认为向adoptopenjdk或其他打包者和开源项目抱怨它是不明智的,:)
幸运的是,现在它已经出来了,不再需要NDA。我的假设是,OpenJDK源代码的ARM分支+macOS x64版本中已经存在的macOS位可以很容易地组合在一起,一旦熟悉OpenJDK源代码的人有一个基于M1的macOS系统来测试它,这应该意味着一个adoptopenjdk macos-aarch64版本应该在一个月内在这里。
但是,开源。你没有付钱给他们,你没有合同,他们也不欠你。捐赠给这项工作或贡献一个拉取请求,如果你想让它走得更快。
更新:
命令行方法(感谢 Homebrew 团队以及 JEP-391
分支上@vladimir-kempik
和其他 openjdk 贡献者的辛勤工作)
# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install OpenJDK
brew install openjdk
验证它是否已安装:
$(brew --prefix openjdk)/bin/java --version
验证它是否适用于 arm64 硬件:
file $(brew --prefix openjdk)/bin/java
# /opt/homebrew/opt/openjdk/bin/java: Mach-O 64-bit executable arm64
注意:要在系统范围内安装 OpenJDK,请按照 Homebrew 提供的屏幕说明进行操作。