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

Spring Boot+JPA+Hibernate CRUD操作中遭遇Java版本不兼容异常求助

Spring Boot+JPA+Hibernate CRUD操作中遭遇Java版本不兼容异常求助

嗨,我之前也踩过这个一模一样的坑!先给你理清楚这个异常的核心问题,再给你两个靠谱的解决方向:

首先看这个异常信息:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/hibernate/SessionFactory has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

这里的版本号对应关系得先搞明白:

  • 类文件版本55.0 → 是用Java 11编译的
  • 类文件版本52.0 → 你的当前运行环境是Java 8

简单说就是:你项目里的Hibernate依赖(具体是org.hibernate.SessionFactory这个类)是用Java11编译出来的,但你现在用Java8的JRE来跑项目,Java8认不出更高版本编译的类,所以就炸了。

接下来给你两个解决方向,选哪个看你的需求:

方向一:升级Java运行环境到Java11及以上

如果你的项目允许升级Java版本,这是最直接的办法:

  • 如果你用IDEA/Eclipse这类IDE:去「Project Structure」(IDEA)或者「Build Path」(Eclipse)里,把项目的SDK、运行时环境都改成Java11或更高版本
  • 如果用Maven构建:在pom.xml里修改maven-compiler-plugin的source和target版本:
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <source>11</source>
        <target>11</target>
    </configuration>
</plugin>
  • 如果用Gradle构建:在build.gradle里调整版本配置:
sourceCompatibility = 11
targetCompatibility = 11

方向二:降级Hibernate(或Spring Boot)版本到适配Java8的范围

如果不想升级Java,那就得把依赖降到兼容Java8的版本:

  • Hibernate本身:Hibernate 5.4.x及以下版本是支持Java8的,而Hibernate 6.x开始要求Java11+,所以可以手动把Hibernate依赖版本降到5.x系列
  • 如果你用Spring Boot更省心:Spring Boot 2.x系列(比如2.7.x版本)默认搭配的Hibernate版本是完全兼容Java8的,要是你不小心用了Spring Boot 3.x(它要求Java17+,搭配的Hibernate也是6.x),直接把Spring Boot版本降级到2.x系列就能解决问题

小提醒:用Spring Boot的话尽量别手动改Hibernate版本,跟着Spring Boot的官方版本绑定来,避免出现其他莫名其妙的兼容问题~

备注:内容来源于stack exchange,提问作者parasuraman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 11:44:09