如何解决Spring项目Failed to read candidate component class异常
错误根因
Unsupported class file major version 58报错的核心原因是Spring版本和JDK编译版本不兼容:
- 大版本号58对应JDK 14编译输出的类文件格式
- 你使用的Spring 5.1.5内置的ASM类解析库最高仅支持JDK 12(对应大版本号56),无法识别JDK 13及以上版本编译的类
即便Eclipse的编译器、JRE配置都设置为JDK14,Spring框架本身的版本限制也会导致类解析失败。
可选解决方案
- 方案一(推荐):升级Spring版本到5.2.0及以上。该版本开始内置支持JDK14的ASM库,无需调整现有JDK、编译器配置,替换项目中所有Spring相关jar包即可生效。
- 方案二:降低项目编译合规版本。如果暂时无法升级Spring,可将项目编译目标版本调整为JDK11或JDK12:
- 右键项目 -> 属性 -> Java Compiler,勾选启用项目特定设置,将Compiler compliance level修改为11或12
- 切换到Java Build Path面板,将项目的执行环境替换为对应版本的JDK
- 执行Project -> Clean清理项目后重新编译运行
- 方案三:校验Tomcat运行时JRE版本。确认你部署项目的Tomcat服务器使用的JRE版本和项目编译版本一致:
- 打开Servers视图,双击对应Tomcat实例打开配置页
- 点击Runtime Environment,检查JRE版本是否匹配,不匹配则修改为对应版本
- 保存配置后重启服务器
内容的提问来源于stack exchange,提问作者poornima
相关产品推荐
相关产品推荐

