M1 Mac执行./gradlew build失败:Groovy类初始化异常求助
问题:M1 Mac编译nrjavaserial项目时Groovy类初始化失败
我要安装COM端口连接“Extended”控制器(稳定方案),但设备插入后软件不显示COM3端口。找到nrjavaserial项目尝试解决,操作步骤如下:
- 用
git clone下载项目 - 切换到项目目录:
cd nrjavaserial - 执行构建命令:
./gradlew build
但构建失败,报错信息:
问题原因:无法初始化类org.codehaus.groovy.runtime.InvokerHelper
异常信息:Exception java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.reflection.ReflectionCache [in thread "Daemon worker"]
环境:M1 Macbook Air,JDK版本为jdk-18.0.2.1.jdk
解决思路
1. 切换兼容的JDK版本
JDK 18属于高版本,老版本Gradle/Groovy对其支持较差。建议切换到JDK 11或JDK 8(LTS版本,兼容性更好):
- 先执行
java -version确认当前JDK版本 - 用Mac自带命令切换,比如切换到JDK 11:
切换完成后重新运行构建命令。export JAVA_HOME=`/usr/libexec/java_home -v 11` java -version
2. 升级项目Gradle版本
项目自带的gradlew版本可能过旧,适配不了高版本JDK或M1架构:
- 执行命令升级Gradle wrapper到兼容版本(比如7.6):
./gradlew wrapper --gradle-version 7.6 - 升级完成后重新执行
./gradlew build
3. 开启Rosetta兼容终端
M1是ARM架构,部分老项目需要通过Rosetta兼容x86环境:
- 右键终端应用→「显示简介」,勾选「使用Rosetta打开」
- 重启终端后重新执行构建步骤
4. 手动安装Groovy依赖
如果是Groovy类缺失导致的问题,手动安装Groovy并配置环境:
- 用Homebrew安装:
brew install groovy - 执行
groovy -version确认安装成功,再重新运行构建命令
内容的提问来源于stack exchange,提问作者AlexMad
相关产品推荐
相关产品推荐

