OracleJDK8 升到 OpenJDK21后的一些事情

By | 2025年5月8日

使用 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>

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注