M1 Mac上用Spring Tool Suite运行JDK1.8+Gradle2.14.1旧项目报错如何解决
问题根因
该报错是Gradle 2.14.1版本未适配Apple Silicon arm64架构导致的兼容性问题,该版本发布于2016年,远早于M1芯片发布时间,原生不支持arm架构运行,配套的JDK、IDE运行架构不匹配也会触发该异常。
可行解决方案
方案1:通过Rosetta 2转译运行STS(无项目改动,优先推荐)
- 在Finder中找到Spring Tool Suite的.app安装文件,右键选择「显示简介」
- 勾选「使用Rosetta打开」选项,重启STS后重新导入项目即可
- 该方案无需修改项目任何配置,仅改变IDE的运行架构,完全兼容原有项目的JDK、Gradle版本规则
方案2:升级Gradle到适配arm64的版本
如果不想使用Rosetta转译,可升级项目Gradle版本到支持arm64的兼容版本:
- 先确认当前Spring Boot版本对应的Gradle兼容范围:Spring Boot 1.x最高兼容Gradle 3.x,Spring Boot 2.x最低支持Gradle 4.x
- 修改项目根目录下
gradle/wrapper/gradle-wrapper.properties文件中的distributionUrl参数,替换为对应兼容版本的Gradle包地址,建议优先选择gradle-4.10.3-bin.zip(兼容绝大多数Spring Boot 1.5.x及2.x版本,原生支持arm64架构) - 可提前在本地下载对应版本的Gradle安装包,在STS的Gradle全局设置中指定本地Gradle路径,避免拉取官方资源失败
方案3:保留原Gradle版本不变,指定x86版JDK运行
如果必须使用原有Gradle 2.14.1版本不做升级:
- 下载x86架构的JDK 1.8(Oracle或OpenJDK的x64版本均可,M1芯片可通过Rosetta正常运行x86版JDK)
- 打开STS的偏好设置,找到Gradle配置页的「Gradle JVM」选项,选择刚才安装的x86版JDK 1.8,保存配置后重新导入项目即可
内容的提问来源于stack exchange,提问作者Kalum Kalum
相关产品推荐
相关产品推荐

