使用 OpenJDK21打旧项目仍然可以在JDK8上使用
前提条件是打出来的java文件字节码必须仍是52。如果使用的是 SpringBoot,那么已经设置了
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
这告诉 Maven 使用 Java 8 的语法和字节码版本(即 major version 52)来编译,即使你当前运行 Maven 的 JDK 是 21。只要你没有使用 JDK 9+ 的语法和类库,这种做法是推荐的做法,它确保生成的 .class 能兼容 JDK 8 环境。
如果不确定,可以在 Idea右击,Maven->Show Effective POM 里看最终的 pom 文件,应该确实包含了上面的配置。
如果你升级 SpringBoot 到 3.3.10,以上配置会变成:
<maven.compiler.release>17</maven.compiler.release>