macOS M1运行Eclipse Application提示Could not load SWT library错误
问题根因
报错核心是架构不匹配:你用的是M1芯片(aarch64/arm64架构)的Mac,但启动插件测试环境时,SWT图形库错误尝试加载x86_64架构的原生动态库,自然加载失败抛UnsatisfiedLinkError。从日志能直接看到矛盾点:
- 启动参数已经正确识别到设备架构为
ARCH=aarch64 - 但SWT实际搜索库的路径是
/Users/peiqi/.swt/lib/macosx/x86_64/,全是x86版本的库,和M1架构完全不兼容
解决步骤
按顺序操作即可:
- 第一步先确认基础环境正确:你安装的Eclipse必须是Apple Silicon/aarch64原生版本,不能是x86版本靠Rosetta转译运行的。如果装错了版本,直接删除后下载对应arm架构的安装包重装,这是所有后续操作的前提。
- 清理历史错误缓存:
- 完全退出Eclipse
- 删除子运行环境工作空间:路径是
/Users/peiqi/runtime-EclipseApplication(就是启动参数里指定的运行时数据目录) - 删除SWT本地缓存目录:直接删掉
/Users/peiqi/.swt/整个文件夹,清掉之前错误缓存的x86版本库文件
- 调整运行配置:
- 重新打开Eclipse,点击顶部菜单栏
Run->Run Configurations - 找到你启动HelloWorld插件用的
Eclipse Application配置项,切换到Plug-ins标签页 - 在下方Target Platform的插件列表里,把所有带
x86_64后缀的SWT相关插件全部取消勾选,只保留org.eclipse.swt.cocoa.macosx.aarch64这个arm64版本的SWT插件,版本号和你当前Eclipse 4.24版本匹配即可 - 切换到
Arguments标签页,在VM arguments输入框末尾追加一行参数:-Dosgi.arch=aarch64,强制OSGi运行时按arm64架构加载原生库
- 重新打开Eclipse,点击顶部菜单栏
- 点击
Apply保存配置,重新启动运行即可。
排错补充
如果按上面操作还是报错,就检查本地JDK架构是否正确:打开终端执行java -version,输出信息里如果出现x86_64就说明装的是x86版本JDK,卸载后换装aarch64版本的JDK 17即可,x86版JDK和arm版Eclipse混用也会触发架构冲突。
小提示:Eclipse 4.24是最早正式稳定支持Apple Silicon的版本之一,如果你用的是更早的版本,不用浪费时间调配置,直接升级到4.24及以上稳定版就行。
内容的提问来源于stack exchange,提问作者DRoseGao
相关产品推荐
相关产品推荐

