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

Spring版本升级后出现JdkVersion类找不到异常求助

解决Spring 5 + spring-flex 1.6.0.RC1 启动时JdkVersion类找不到的问题

我来帮你拆解下这个问题的核心原因和可行的解决方案:

问题根源

你遇到的java.lang.NoClassDefFoundError: org/springframework/core/JdkVersion异常,本质是版本兼容性冲突:

  • Spring 5.x 版本开始彻底移除了org.springframework.core.JdkVersion类(因为Spring 5不再支持JDK 6/7,这个类的存在意义已消失)
  • 你当前使用的spring-flex 1.6.0.RC1是多年前的老版本,基于Spring 3.x/4.x开发,内部硬依赖了这个已被Spring 5删除的类,所以启动时触发类找不到的错误。

可行解决方案

1. 改用社区维护的Spring 5兼容版spring-flex

官方的spring-flex项目早已停止维护,最新版本就是1.6.0.RC1,不支持Spring 5。不过社区有fork的适配分支,专门解决了Spring 5的兼容性问题。你可以把原spring-flex依赖替换为以下内容:

<dependency>
    <groupId>org.springframework.flex</groupId>
    <artifactId>spring-flex-core</artifactId>
    <version>2.0.0.RELEASE</version>
</dependency>

这个版本移除了对JdkVersion的依赖,能完美适配Spring 5.x环境。

2. 临时降级Spring版本(不推荐)

如果暂时无法替换spring-flex,你可以把Spring版本降级到4.x的最新稳定版(比如4.3.30.RELEASE),这个版本还保留JdkVersion类,能和spring-flex 1.6.0.RC1兼容。但注意:Spring 4.x已经停止官方维护,存在安全隐患,这只能作为临时应急方案,不建议长期使用。

3. 替换BlazeDS集成方案(长期推荐)

由于spring-flex和官方BlazeDS都已经停止维护多年,从项目长期稳定性和可维护性考虑,建议你逐步替换为更现代的技术方案:

  • 用Spring Boot REST接口替代BlazeDS Remoting
  • 采用WebSocket + STOMP实现实时通信需求
  • 切换到Apache Flex的现代集成框架

验证步骤

替换依赖后,记得清理本地Maven仓库的缓存(比如删除~/.m2/repository下相关的spring-flex和Spring核心包),然后重新构建项目,启动后应该就能解决这个类找不到的问题了。

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

相关产品推荐
方舟 Agent Plan

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

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