是否需要一个特别的OpenJDK版本来支持新的苹果硅芯片?
我看到目前有macOS/OS X的JDK下载,但这些似乎只适用于x86处理器。对吗?如果是这样,我可以在哪里下载用于M1的OpenJDK版本?
是否需要一个特别的OpenJDK版本来支持新的苹果硅芯片?
我看到目前有macOS/OS X的JDK下载,但这些似乎只适用于x86处理器。对吗?如果是这样,我可以在哪里下载用于M1的OpenJDK版本?
当前回答
brew install openjdk
以我为例,在MacBook Air (M1)上成功安装OpenJDK后,java命令仍然不起作用。我用
brew info openjdk
然后有一个命令喜欢
For the system Java wrappers to find this JDK, symlink it with
sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
执行该命令,java命令生效。
其他回答
Azul在其网站的下载部分提供macOS ARM版本的OpenJDK。虽然我还没有尝试过,但Azul一直是JDK的长期开发人员。
一旦你解包了Azul JDK,你必须在它里面翻找,直到你找到zulu-11。jdk目录(假设您已经下载了jdk 11),然后将其复制到/Library/Java/JavaVirtualMachines。
命令行方法(感谢Homebrew团队以及@vladimir-kempik和其他openjdk JEP-391分支贡献者的辛勤工作)
# 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提供的屏幕说明。
以下是安装Oracle JDK 8并从Rosetta - https://www.oracle.com/in/java/technologies/javase/javase-jdk8-downloads.html运行它的步骤
下载macOS x64版本 在尝试安装该包时,如果Rosetta已经不存在,您将收到安装它的提示 其余的安装步骤与任何其他包相同。
您可以通过打开终端并输入以下命令来验证它是否工作:
java -version
您可以使用sdkman安装Java JDK(参见sdkman install):
vim .sdkman/etc/config
设置sdkman_rosetta2_compatible=false(参见sdkman config)
之后,您将看到一个与M1 jdk兼容的列表:
sdk list java
================================================================================
Available Java Versions
================================================================================
Vendor | Use | Version | Dist | Status | Identifier
--------------------------------------------------------------------------------
Azul Zulu | | 16.0.1 | zulu | | 16.0.1-zulu
| | 11.0.11 | zulu | | 11.0.11-zulu
| | 8.0.292 | zulu | | 8.0.292-zulu
BellSoft | | 16.0.1 | librca | | 16.0.1-librca
| | 11.0.11 | librca | | 11.0.11-librca
| | 8.0.292 | librca | | 8.0.292-librca
Java.net | | 18.ea.3 | open | | 18.ea.3-open
| | 18.ea.2 | open | | 18.ea.2-open
| | 18.ea.1 | open | | 18.ea.1-open
| | 17.ea.28 | open | | 17.ea.28-open
| | 17.ea.27 | open | | 17.ea.27-open
| | 17.ea.26 | open | | 17.ea.26-open
| | 17.ea.25 | open | | 17.ea.25-open
================================================================================
选择一个并使用命令sdk install java IDENTIFIER安装它,即:
SDK安装Java 8.0.292-zulu
现在,来自Oracle的OpenJDK 17支持Apple M1芯片。JEP 391的状态是关闭和交付。
您可以从官方网站下载免费的macOS/AArch64开源JDK版本17。