如何在M2 MacBook上安装Intel架构的Java 11?
如何在M2 MacBook上安装Intel架构的Java?
问题背景
由于存在仅支持x86架构的Java二进制文件,我需要在M2 MacBook上通过Rosetta运行Intel版本的Java。尝试用SDKMAN和Oracle的Intel安装程序安装,但均未成功。
已尝试的SDKMAN操作步骤
- 已创建通过Rosetta运行的终端,验证结果符合预期:
~ arch i386 ~ uname -m x86_64 - 编辑了
.sdkman/etc/config文件,添加sdkman_rosetta2_compatible=false(不确定是否正确) - 执行命令
sdk install java 11.0.20-ms安装Microsoft提供的Java 11 - 用
cat $(which java) | file -验证安装结果,始终显示为arm64版本
解决方法
方法一:修正SDKMAN配置安装Intel Java
- 确保全程在Rosetta终端中操作(执行
arch命令应返回i386) - 修改SDKMAN配置文件
.sdkman/etc/config,将sdkman_rosetta2_compatible设置为true——这个配置会让SDKMAN识别当前处于Rosetta环境,优先下载x86架构的Java包 - 卸载已安装的arm64版本Java:
sdk uninstall java 11.0.20-ms - 重新安装支持x86架构的Java版本,比如选择Amazon Corretto的x86包:
也可以用sdk install java 11.0.20-amznsdk list java查看所有可用版本,确认标注有x86_64的选项后再安装 - 验证安装结果:
输出应显示file $(which java)Mach-O 64-bit executable x86_64
方法二:手动下载安装Intel版Java
- 直接下载对应x86_64架构的Java安装包(比如Oracle JDK、Amazon Corretto或AdoptOpenJDK的Mac x86版本)
- 打开Rosetta终端,将安装包解压到指定目录,例如
/Library/Java/JavaVirtualMachines/ - 配置环境变量,在
~/.zshrc(或~/.bash_profile,取决于你用的shell)中添加:export JAVA_HOME=/Library/Java/JavaVirtualMachines/[你的Intel Java版本目录]/Contents/Home export PATH=$JAVA_HOME/bin:$PATH - 刷新环境变量:
source ~/.zshrc - 验证:
确认输出显示x86_64架构信息java -version file $(which java)
关键注意事项
- 所有安装、配置和验证操作必须在Rosetta终端中执行,否则会默认下载arm64版本
- SDKMAN的
sdkman_rosetta2_compatible=true是核心配置,不要设为false - 选择Java版本时,务必确认该版本提供x86_64架构的Mac安装包
内容的提问来源于stack exchange,提问作者kevinlinxc
相关产品推荐
相关产品推荐

