Apple M2架构下ScalaZ3运行遇架构冲突,如何让IntelliJ通过Rosetta运行?
解决方案:让IntelliJ以x86模式运行Scala+Z3项目
以下是针对Apple M2架构设备上问题的可行方案:
1. 强制IntelliJ通过Rosetta以x86_64架构启动
如果之前尝试设置"使用Rosetta打开"未成功,按以下步骤操作:
- 找到应用程序中的IntelliJ IDEA图标,右键选择获取信息
- 勾选使用Rosetta打开选项,完全退出并重启IntelliJ
- 若仍无效,可通过终端命令强制以x86架构启动:
arch -x86_64 /Applications/IntelliJ\ IDEA.app/Contents/MacOS/idea
2. 单独配置sbt Runner使用x86架构
无需切换整个IntelliJ的架构,仅让sbt以x86模式运行:
- 创建一个名为
x86-sbt的脚本,内容如下:#!/bin/bash arch -x86_64 /usr/local/bin/sbt "$@" - 给脚本添加执行权限:
chmod +x x86-sbt - 在IntelliJ中打开Settings/Preferences → Build, Execution, Deployment → Build Tools → sbt
- 在Launcher部分,选择Custom并指向刚刚创建的
x86-sbt脚本路径
3. 匹配x86版本的JDK
确保项目使用的JDK为x86_64架构:
- 下载并安装x86版本的JDK(如Adoptium提供的x86_64 OpenJDK)
- 在IntelliJ中打开Project Structure → SDKs,添加并设置该x86 JDK为项目SDK
- 在sbt配置中,指定使用该x86 JDK运行项目
4. 确认Z3依赖的架构一致性
- 确保项目依赖的Z3动态库为x86_64版本,避免IntelliJ自动加载arm64版本
- 在
build.sbt中明确指定x86架构的Z3依赖,或手动将x86的Z3库添加到项目的libraryDependencies中
内容的提问来源于stack exchange,提问作者Matei
相关产品推荐
相关产品推荐

