运行ControlsFX示例报NoClassDefFoundError: InvokerHelper初始化失败如何解决
问题原因
- ControlsFX项目内置的Gradle Wrapper版本较低,内置的Groovy运行时与你使用的JDK17不兼容,无法正常初始化
org.codehaus.groovy.runtime.InvokerHelper类,进而抛出类定义未找到错误。 - 你执行命令时如果调用了全局Gradle,也会出现全局版本和项目配置不匹配的类加载冲突问题。
解决步骤
按顺序执行以下操作即可:
使用项目自带的Gradle Wrapper执行命令,不要调用全局安装的Gradle:
- Windows系统在项目根目录执行:
gradlew.bat run - Linux/Mac系统在项目根目录执行:
./gradlew run
Wrapper会自动下载项目适配的Gradle版本,无需手动配置环境。
- Windows系统在项目根目录执行:
如果执行Wrapper仍报错,清理缓存后重试:
# 停止所有Gradle守护进程 ./gradlew --stop # 清理项目本地的Gradle缓存与构建产物 rm -rf .gradle build # Windows环境删除命令为:rmdir /s /q .gradle build # 重新执行运行命令 ./gradlew run如需继续使用JDK17运行,手动升级项目Gradle Wrapper版本到兼容JDK17的7.3+:
./gradlew wrapper --gradle-version=7.3 --distribution-type=bin ./gradlew run
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

