SpringToolSuite 4在macOS 11 Big Sur启动报错,寻求有效OSGi清理方案
解决方案建议
首先得说清楚,这个错误的核心是JNA生成的临时库和你的Apple Silicon(aarch64)架构不匹配,和OSGi clean的关系其实不大——虽然你已经成功传入了clean参数,但问题根源是JNA的缓存文件是为x86_64架构生成的,现在在arm机器上没法加载。
给你几个针对性的解决步骤,按优先级来:
1. 彻底清理JNA缓存(首选方案)
直接删掉JNA的缓存目录,这是最直接解决架构不匹配的办法:
rm -rf ~/Library/Caches/JNA/
删除之后重启STS4,JNA会重新生成适配aarch64架构的临时库文件,应该就能解决这个错误了。
2. 强制STS4使用Rosetta 2运行(临时 workaround)
如果清理缓存后还是有问题,可以尝试让STS4以x86_64架构运行:
- 找到
/Applications/SpringToolSuite4.app,右键选择「显示简介」 - 勾选「使用Rosetta打开」
- 重启STS4
不过这只是临时方案,毕竟你用的是原生aarch64的JDK,优先建议用第一种方法。
3. 其他OSGi清理方式(如果之后需要的话)
虽然当前问题不是OSGi缓存导致的,但如果之后你需要做更深的OSGi清理,除了传入-clean参数,还可以试试:
- 删除STS工作区的缓存:找到你的STS工作区,删除
.metadata/.plugins/org.eclipse.core.runtime/.cache目录 - 重置STS的配置:删除
~/Library/Application Support/SpringToolSuite4目录(注意备份你自己的重要配置)
另外补充一句:你提到无法修改ini文件,其实如果之后真的需要修改的话,可以右键STS4.app选择「显示包内容」,然后找到Contents/Eclipse/SpringToolSuite4.ini,用文本编辑器修改就行——只要不是修改系统级的保护文件,macOS不会限制操作的。不过当前问题确实不需要修改ini,先清理JNA缓存就好。
内容的提问来源于stack exchange,提问作者MiB
相关产品推荐
相关产品推荐

