You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:使用Spring CLI运行简单Groovy程序时出现类加载错误

解决Spring CLI运行Groovy程序时的ClassNotFoundException问题

从你贴出的错误栈能看出,核心问题是**java.lang.ClassNotFoundException: java.sql.SQLException**,这个报错大多是Java版本和Spring CLI版本不兼容导致的——尤其是当你用了Java 9及以上版本,但Spring CLI版本过旧(比如1.x系列)时,Java 9开始的模块化系统会默认不加载部分可选模块,而老版本Spring CLI完全没适配这种变化。

下面是具体的解决步骤:

1. 先确认版本兼容性

  • 检查Java版本:运行命令 java -version,看当前是Java 8、11还是更高版本。
  • 检查Spring CLI版本:运行命令 spring --version。
    • 如果你的Java是9+版本,但Spring CLI是1.x,那必然出问题——Spring Boot 1.x根本不支持Java 9及以上版本。
    • Spring Boot 2.x系列支持Java 8到17,3.x系列则要求Java 17及以上。

2. 调整版本匹配环境

方案A:升级Spring CLI到兼容版本

如果你用的是Java 11或17,建议直接升级Spring CLI到2.x或3.x版本:

  • 要是用SDKMAN管理开发工具,可以直接运行:
    sdk install springboot <目标版本号> # 比如2.7.17或3.2.0
    
  • 手动安装的话,去Spring官方下载对应版本的CLI包,替换现有安装即可。

方案B:降级Java到8

如果暂时不想升级Spring CLI,可以把Java版本降级到8(Spring Boot 1.x的兼容版本),记得把环境变量里的JAVA_HOME指向Java 8的安装目录。

3. 临时应急方案(不推荐长期用)

如果暂时没法调整版本,可以尝试在运行时手动添加模块依赖参数:

spring run --jvm-options "--add-modules java.sql" Hello.groovy

这个命令会强制JVM加载java.sql模块,临时解决找不到SQLException的问题,但这只是权宜之计,版本匹配才是根本解决办法。

验证修复

调整完版本后,重新运行你的Groovy程序:

spring run Hello.groovy

如果一切正常,访问http://localhost:8080就能看到"Hello World"了。

内容的提问来源于stack exchange,提问作者Aviral

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:42:17