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

如何修复java.lang.ClassNotFoundException: org.springframework.boot.configurationprocessor.json.JSONException错误?

Spring Boot服务通过Jar2exe转为Windows服务时出现ClassNotFoundException问题解决

错误核心分析

从提供的异常栈可以追踪到根源:

java.lang.ClassNotFoundException: org.springframework.boot.configurationprocessor.json.JSONException

这个类来自spring-boot-configuration-processor依赖,但当前你的build.gradle中该依赖的scope是annotationProcessor——这个scope的依赖仅用于编译阶段生成配置元数据,不会被打包到最终的可执行jar中。而IntelliJ IDEA运行项目时,会自动将annotationProcessor scope的依赖加入类路径,所以无论开发机还是生产机用IDE运行都正常,但通过Jar2exe生成exe后,运行时类路径缺失该依赖,导致报错。

解决方案

方案1:调整依赖Scope

将spring-boot-configuration-processor的依赖scope改为implementation,确保它被包含到最终的可执行jar中:
修改build.gradle中的对应依赖行:

// 原配置
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
// 修改为
implementation 'org.springframework.boot:spring-boot-configuration-processor'

修改后重新构建项目,生成新的jar后再用Jar2exe转为Windows服务。

方案2:替换内部JSON类依赖(推荐)

org.springframework.boot.configurationprocessor.json包属于Spring Boot配置处理器的内部实现,并非对外公开的API,不建议在业务代码中直接引用。如果你的代码里直接使用了这个包下的类(比如JSONException、JSONObject),建议替换为标准JSON库:

  • 使用Spring Boot默认集成的Jackson:替换为com.fasterxml.jackson.core.JsonProcessingException等类
  • 或者使用Gson、Fastjson等第三方库

替换后可以保持spring-boot-configuration-processor的annotationProcessor scope,同时避免运行时依赖问题。

验证步骤

  1. 执行./gradlew clean build清理并重新构建项目
  2. 先测试生成的jar是否能正常运行:java -jar [你的jar文件名].jar
  3. 确认jar运行正常后,再用Jar2exe工具将其转为Windows服务,测试服务启动情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 14:36:25