# 1. JDK 版本 (Oracle Java SE 支持路线图)
数据来源:Oracle Java SE 支持路线图 | 甲骨文中国: https://www.oracle.com/cn/java/technologies/java-se-support-roadmap.html
| 版本 | GA Date | Premier Support Until | Extended Support Until(限 LTS) |
|---|---|---|---|
| 8 (LTS) | 2014 年 3 月 | 2022 年 3 月 | 2030 年 12 月 |
| 9 - 10 (non-LTS) | 2017 年 9 月 - 2018 年 3 月 | 2018 年 3 月 - 2018 年 9 月 | / |
| 11 (LTS) | 2018年9月 | 2023 年 9 月 | 2032 年 1 月 |
| 12 - 16 (non-LTS) | 2019 年 3 月 - 2021 年 3 月 | 2019 年 9 月 - 2021 年 9 月 | / |
| 17 (LTS) | 2021 年 9 月 | 2026 年 9 月或延期 | 2029 年 9 月或延期 |
| 18 - 20 (non-LTS) | 2022 年 3 月 - 2023 年 3 月 | 2022 年 9 月 - 2023 年 9 月 | / |
| 21 (LTS) | 2023 年 9 月 | 2028 年 9 月或延期 | 2031 年 9 月或延期 |
| 22 (non-LTS) | 2024 年 3 月 | 2024 年 9 月 | / |
- JDK 的标准更新周期为 6 个月
- Java SE 8 的公共更新已经结束,将不再提供免费商用更新。
- Oracle 自 2017 年 9 月开始提供 基于 GPLv2 开源的 Oracle OpenJDK
- Oracle JDK 16 及以前的版本不可免费商用(详情)
- Oracle JDK 17 及以上版本,自 2021 年 9 月起,提供免费使用许可(详情)
# 1.1. LTS 版本说明
LTS,原名 Long-Term Support 长期支持,正常情况下 当 JDK 12 正式发布后 JDK 11 将失效,但是由于 JDK 11 是 LTS 版本,所以会延长支持更新至 2032 年。
LTS 版本更加注重稳定性,安全性,性能改进,默认支持是 8 年,其中 JDK 8 延长至 2030 年(16年),延长支持期间不再提供新的功能。
LTS 版本自 2021 年起,从 3 年发布一次更改为 2 年一次(详情)
# 1.1.1. 参考
The art of long-term support and what LTS means for the Java ecosystem: https://blogs.oracle.com/javamagazine/post/java-long-term-support-lts
# 2. JDK 概览
由于 Oracle 开源了 JDK,很多社区以及公司根据 Oracle Open JDK 构建了自己的 JDK,使开发者有了更加丰富的选项,一些社区或公司会根据自己的生产环境针对 JDK 进行调整,例如 Amazon Corretto JDK 优化了在 AWS 等云平台的使用体验,以下为 JDK 概览
表格数据来源(空白单元格表示未找到相关数据): https://stackoverflow.com/a/52431765/15599248 https://www.baeldung.com/oracle-jdk-vs-openjdk
| Provider | Free Builds from Source | Free Binary Distributions | Extended Updates | Commercial Support | Permissive License | Website |
|---|---|---|---|---|---|---|
| Adopt Open JDK/Adoptium | Yes | Yes | Yes | No | Yes | https://adoptopenjdk.net |
| Amazon Corretto | Yes | Yes | Yes | No | Yes | https://aws.amazon.com/corretto |
| Azul Zulu | No | Yes | Yes | Yes | Yes | https://www.azul.com/downloads/zulu/ |
| BellSoft Liberica | No | Yes | Yes | Yes | Yes | https://bell-sw.com/java.html |
| IBM | No | No | Yes | Yes | Yes | https://www.ibm.com/developerworks/java/jdk |
| jClarity | No | No | Yes | Yes | Yes | https://www.jclarity.com/adoptopenjdk-support/ |
| OpenJDK | Yes | Yes | Yes | No | Yes | https://adoptopenjdk.net/upstream.html |
| Oracle JDK | No | Yes | No | Yes | No | https://www.oracle.com/technetwork/java/javase/downloads |
| Oracle OpenJDK | Yes | Yes | No | No | Yes | https://jdk.java.net |
| ojdkbuild | Yes | Yes | No | No | Yes | https://github.com/ojdkbuild/ojdkbuild |
| RedHat | Yes | Yes | Yes | Yes | Yes | https://developers.redhat.com/products/openjdk/overview |
| SapMachine | Yes | Yes | Yes | Yes | Yes | https://sap.github.io/SapMachine |
| Microsoft JDK | Yes | Yes | Yes | Yes | Yes | https://learn.microsoft.com/zh-cn/java/openjdk/ |
- Free Builds from Source - 发行版源代码是公开的,人们可以组装自己的构建版本
- Free Binary Distributions - 发行版二进制文件可以公开下载和使用
- Extended Updates - 也被称为LTS(长期支持),指的是发布周期超过6个月的公开更新。
- Commercial Support - 一些提供商为满足条件的付费客户提供扩展更新和客户支持,例如Oracle JDK(详情)。
- Permissive License - 软件许可证是非保护性的 (non-protective),例如Apache 2.0
# 3. JDK 选择参考(个人向)
一般根据生产/测试环境选择,例如 AWS 环境就选择 Amazon Corretto;当没有生产环境限制时,选择 JDK 可以综合考虑 LTS 版本、第三方要求(例如Spring)、开源可商用以及维护者实力等因素。
- adoptium: https://adoptium.net/temurin/releases/
- Microsoft: https://docs.microsoft.com/zh-cn/java/openjdk/download
# 3.1. 选择 adoptium 主要参考
- adoptium 由 Eclipse 基金会提供支持和维护,具有一定的稳定性。
- adoptium 的口碑一直相对优秀。
# 3.2. 选择 Microsoft OpenJDK 主要参考
Microsoft Build of OpenJDK 二进制文件基于 OpenJDK 源代码,遵循 Eclipse Adoptium 项目使用的相同生成脚本,并根据 Eclipse Adoptium 质量保证套件(包括 OpenJDK 项目测试)进行了测试。我们正式发布的二进制文件已通过 Java 技术兼容性工具包 (TCK) 的测试,该工具包用于验证与 Java 规范的兼容性。Microsoft Build of OpenJDK 是 Java 生态系统中可用的任何其他 OpenJDK 分发版的普适性替代产品。 https://learn.microsoft.com/zh-cn/java/openjdk/overview
- Microsoft OpenJDK 由 Microsoft 提供维护,具有一定的稳定性。
- Microsoft OpenJDK 下载比较稳定且方便,在一些紧急情况,例如给他人或陌生环境部署,会更加合适;(adoptium 有时下载速度较慢,Redhat 需要注册才能下载)
# 3.3. 扩展
- Redhat 对于 JDK 长期维护的支持与声明,mi-openjdk-datasheet-f17057cs-201908-a4-zh.pdf: https://www.redhat.com/rhdc/managed-files/mi-openjdk-datasheet-f17057cs-201908-a4-zh.pdf
# 3.4. JDK 安装
环境:Windows 11
- 选择并下载合适版本的压缩包(我一般选择 zip 压缩包,方便自己配置)

- 解压到自己常用的 JDK 安装目录中即可
- 在系统/用户环境变量中设置
JAVA_HOMEMAVEN等程序需要JAVA_HOME所以不建议省略
- 将
bin目录添加到系统/用户环境变量的Path中
# 3.5. JDK 验证
在 cmd/powershell 中运行以下命令
java --version
返回参考(长时间无响应,或者查找不到命令,则表明配置错误)
openjdk 21.0.2 2024-01-16 LTS
OpenJDK Runtime Environment Temurin-21.0.2+13 (build 21.0.2+13-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.2+13 (build 21.0.2+13-LTS, mixed mode, sharing)
运行以下命令
javac --version
返回参考
javac 21.0.2
# 4. 参考
- Oracle Java SE 支持路线图 |甲骨文中国: https://www.oracle.com/cn/java/technologies/java-se-support-roadmap.html
- java - OpenJDK 和 Adoptium/AdoptOpenJDK 之间的区别 - stackoverflow: https://stackoverflow.com/questions/52431764/difference-between-openjdk-and-adoptium-adoptopenjdk
- OpenJDK, an open source alternative to Oracle JDK: https://www.redhat.com/en/resources/build-of-openjdk-datasheet
- What Does Long-Term Support Mean for OpenJDK? | Java Code Geeks - 2021: https://www.javacodegeeks.com/2019/07/long-term-support-mean-openjdk.html
- ID: B2-V2+1.0.0
- 原文:https://blog.cc01cc.cn/2024/04/05/java-jdk-version-lts-install-verify/
- 署名:零一/cc01cc(zeo): https://github.com/cc01cc/
- 本作品采用署名-相同方式共享 4.0 国际(CC BY-SA 4.0 DEED)许可证进行许可,转载请标明源地址,谢谢
