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

Spring Boot项目Eclipse运行正常,java -jar启动报错Bean创建失败

问题根因

报错的核心原因是你在业务代码中直接引用了spring-boot-configuration-processor包下的org.springframework.boot.configurationprocessor.json.JSONException类,而这个依赖默认被标记为编译期可选依赖(optional),只会在IDE编译阶段生效,执行mvn package/gradle bootJar打可执行jar包时不会被包含进去,因此java -jar运行时会找不到类。Eclipse运行时直接加载了编译期的所有依赖,所以不会报错。

解决方案

二选一即可,更推荐第二种:

  • 方案1:修改spring-boot-configuration-processor的依赖配置,移除optional标记
    如果你用Maven,把pom文件中该依赖的<optional>true</optional>配置删掉,scope保留默认的compile即可;如果是Gradle,把该依赖的optional相关配置移除即可。修改后重新打包就能把该依赖打进jar包,运行即可恢复正常。
  • 方案2:替换业务代码中的JSON工具类(更推荐)
    spring-boot-configuration-processor本身是Spring Boot用来生成配置元数据的专用工具,不是通用JSON处理库,业务代码引用它的JSON类属于误用。你可以把代码中所有引用该包下JSON相关类的逻辑,替换成Jackson(Spring Boot默认自带,不需要额外加依赖)、FastJSON、独立org.json等通用JSON库的对应实现,修改完成后重新打包即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 22:54:04