安装Spring CLI后运行示例报错:无法实例化ApplicationContextInitializer
解决Spring Boot CLI运行
spring run app.groovy报错的问题 从你贴出的错误日志来看,核心问题是你使用的Spring Boot CLI版本(1.5.9.RELEASE)和当前Java版本不兼容,具体原因拆解如下:
- Spring Boot 1.5.x属于老旧版本,官方仅支持Java 6到Java 8,完全不兼容Java 9及以上版本(日志里的
java.base模块标识说明你用的是Java 9+) - Java 9开始引入模块化系统,
java.sql包被独立成模块,老版本Spring Boot CLI无法正确加载该模块,直接导致ClassNotFoundException: java.sql.SQLException - 配套的Groovy 2.4.13在Java 9+环境下会触发非法反射访问警告,这也是日志开头警告信息的来源
下面给你两个可行的解决方案:
方案一:降级Java版本到Java 8
- 安装Java 8开发环境(JDK 8)
- 切换当前终端或系统的默认Java版本到Java 8:
- Linux/macOS可以用
update-alternatives命令切换,示例:
之后选择对应Java 8的选项即可sudo update-alternatives --config java - Windows可以通过修改环境变量
JAVA_HOME和Path,指向Java 8的安装目录
- Linux/macOS可以用
- 重新运行
spring run app.groovy,就能正常执行了
方案二:升级Spring Boot CLI到最新稳定版本
Spring Boot 2.x及以上版本已经完美适配Java 8及更高版本,同时修复了模块化和反射相关问题:
- 卸载当前的Spring Boot 1.5.9 CLI
- 安装最新稳定版Spring Boot CLI(注意:3.x版本需要Java 17+,2.7.x版本支持Java 8-19,可根据你的Java版本选择)
- 重新获取官方示例的
app.groovy(如果需要),再执行spring run app.groovy即可
另外建议你后续使用Spring Boot CLI时,尽量保持CLI版本和官方文档版本一致,避免再出现版本兼容类问题。
内容的提问来源于stack exchange,提问作者raghu
相关产品推荐
相关产品推荐

