当前位置: 首页 > 知识库问答 >
问题:

Java /JDK苹果M1芯片

傅阳炎
2023-03-14

是否需要专门发布OpenJDK来支持新的苹果M1芯片?

我看到目前有下载用于macOS/OS的JDK

共有3个答案

满博
2023-03-14

命令行方法(感谢Homebrew团队和JEP-391分支上的@vladmir-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可能声称它正在M1上安装不同版本的OpenJDK。这是由于自制软件中的稳定的打包规则造成的,并将随着时间的推移进行排序。

廖君昊
2023-03-14

Azul在其网站的下载部分提供macOS ARM版本的OpenJDK。虽然我还没有尝试过,但是Azul已经是JDK的长期开发者了。

一旦你打开Azul JDK的包,你必须在里面翻找直到你找到zulu-11。jdk目录(假设您已经下载了jdk

昌琪
2023-03-14

是的。

在此页面上:采用OpenJDK最新版本您可以从“操作系统”下拉列表中选择“macOS”,然后从“体系结构”中选择“macOS”,它目前只有x64,但不久应该有AArch64或ARM64(这些通常是64位ARM的短码)。可能,因为苹果无疑在M1设计中内置了一系列扩展,苹果也有自己的。

如果您将操作系统保持在“any”状态,您会注意到aarch64就在这里,这会让您看到一个针对ARM处理器的Linux版本。这(可能)不会在M1硬件上的macOS上运行,但已经完成了95%的工作。

所以:它还没有出现,但是请注意,用于ARM的JDK已经存在了十多年,而JDK

苹果直到2020年11月10日才给出任何关于这种架构的细节,除非你为它购买了一个开发工具包(一个带有A14芯片的Mac Mini,虽然不是M1芯片,但我想已经足够接近了),并签署了一份大的保密协议。

通常,如果你挥舞NDA,开源项目将以尽可能快的速度朝相反的方向运行,因此如果你不喜欢这种情况,我认为向采用OpenJDK或其他打包html" target="_blank">程序和开源项目抱怨是不明智的:)

幸运的是,现在它出来了,不再需要NDA。我的假设是,OpenJDK源代码的ARM分支,即macOS x64版本中已经存在的macOS位,可以很容易地组合在一起,一旦熟悉OpenJDK源代码的人有一个基于M1的macOS系统来测试它这意味着一个月内就会有Macos-aarch 64的发布。

但是,开源。你没有付钱给他们,你没有合同,他们也不欠你。如果你想让这项工作进行得更快,可以向它捐款或提出请求。

更新:

  • Azul的M1 OpenJDK构建
 类似资料:
  • 我看到目前有用于macOS/OS X的JDK下载,但这些似乎只适用于x86处理器。那是正确的吗?如果是,我可以从哪里下载用于M1的OpenJDK版本?

  • 我尝试在MacBook上运行Android模拟器,但它不起作用,AVD管理器显示错误,并显示消息:无法启动AVD。似乎这个问题的根源在于M1芯片不支持虚拟化,AVD需要VT-x来获取x86图像。大多数图像都基于x86,并且最新的Android版本不提供基于arm的图像。是否有任何解决方案可以绕过此问题?(使用物理设备和旧映像除外)

  • 我用的是M1芯片的MBA学位。我尝试了Zulu JDK for M1进行开发,它可以工作,但是它不能用于OpenJFX。我已经使用Zulu vs AdoptopenJDK缩小了问题的范围。有人知道OpenJDK什么时候能兼容M1芯片吗?

  • 我刚买了新的M1 MacBook,当我尝试执行“sudo apt get install docker”时,我得到以下错误: “操作无法完成。找不到支持APT的Java运行时。有关安装Java的信息,请访问http://www.Java.com。” 我已经有了用于ARM64的azul jdk-11,并且调用了echo$JAVA_HOME和Java--version。 有什么想法吗?

  • 我有一个Flutter项目,我正试图在iOS上运行。它在我的基于英特尔的Mac电脑上正常运行,但在我的新的基于苹果硅的M1 Mac电脑上,它无法安装吊舱。 基于Github解决方案,我尝试使用rosetta运行Terminal,但问题仍然是:https://github.com/CocoaPods/CocoaPods/issues/9907#issuecomment-655870749 意识到现在

  • 我有一个docker-compose.yml,它构建了大约8个容器,主要由mysql、postgres、php-nginx和其他一些定制构建的包组成。生产版本在UBUNTU主机上运行,我的开发包在带有英特尔芯片的Mac OS Catalina上运行。整个事情也在Github上的私人存储库中维护。 合作者有一台M1 Mac,我可能很快就会升级到M1 Mac,或者是MacBook Pro,或者是今年晚