一、Oracle 官方 JDK 版本演进历程
| 版本号 | 发布日期 | LTS 支持截止日 | 主要特性 |
|---|
| JDK 7 | 2011-07-28 | 2022-04-01 | 引入 invokedynamic、try-with-resources |
| JDK 8 | 2014-03-18 | 2030-12-31 | Lambda 表达式、Nashorn 引擎、接口默认方法 |
| JDK 9 | 2017-09-21 | 2018-03-21 | 模块化系统(JPMS)、JShell 交互式终端 |
| JDK 10 | 2018-03-20 | 2018-09-20 | 局部变量类型推断(var)、GC 改进 |
| JDK 11 | 2018-09-25 | 2026-09-25 | HTTP Client API、ZGC 低延迟垃圾回收 |
| JDK 12 | 2019-03-19 | 2019-09-19 | Switch 表达式预览、Shenandoah GC |
| JDK 13 | 2019-09-17 | 2020-03-17 | 文本块(Text Blocks)、动态 CDS 归档 |
| JDK 14 | 2020-03-17 | 2020-09-17 | 记录类(Record)、Pattern Matching for instanceof |
| JDK 15 | 2020-09-15 | 2021-03-15 | 密封类(Sealed Classes)、Edwards-Curve 数字签名 |
| JDK 16 | 2021-03-16 | 2021-09-16 | Vector API、外部函数接口(Foreign Function & Memory API) |
| JDK 17 | 2021-09-14 | 2029-09-14 | Switch 模式匹配、JEP 306 恢复始终严格浮点语义 |
| JDK 18 | 2022-03-22 | 2023-03-22 | UTF-8 默认编码、Simple Web Server |
| JDK 19 | 2022-09-20 | 2023-09-20 | 虚拟线程(Virtual Threads)、Linux/RISC-V 移植 |
| JDK 20 | 2023-03-21 | 2024-03-21 | 字符串模板、作用域值(Scoped Values) |
| JDK 21 | 2023-09-19 | 2031-09-19 | 强封装 JDK 内部 API、虚拟化持久内存(VPM) |
| JDK 22 | 2024-03-19 | 2025-03-19 | 结构化并发、Switch 模式匹配增强 |
| JDK 23 | 2024-09-17 | 2025-09-17 | 增强 Switch 模式匹配、JDK Flight Recorder 改进 |
| JDK 24 | 2025-03-18 | 2026-03-18 | 原生序列化替代方案、JVMCI 编译器改进 |
| JDK 25 | 2025-09-16 | 2035-09-16 | 字符串处理增强、垃圾回收优化、ZGC 统一内存管理 |
二、主流厂商发行版对比
1. Eclipse Temurin (Adoptium)
| 特性 | 详情 |
|---|
| 维护方 | Eclipse基金会Adoptium社区 |
| LTS版本 | 8/11/17/21/25(均提供8年支持) |
| 安装方式 | 容器镜像、Linux仓库、包管理器、REST API、GitHub Actions |
| 适用场景 | 企业级生产环境、需要长期稳定支持的场景 |
| 下载链接 | Adoptium官网 |
2. Amazon Corretto
| 特性 | 详情 |
|---|
| 维护方 | Amazon AWS |
| LTS版本 | 8/11/17/21(提供5年以上支持) |
| 核心优势 | 内置AWS服务深度集成、Graviton处理器优化、Docker镜像全平台覆盖 |
| 特殊功能 | 实时垃圾回收(Real-Time GC)、AOT编译支持 |
| 下载链接 | AWS官方文档 |
3. Microsoft Build of OpenJDK
| 特性 | 详情 |
|---|
| 维护方 | 微软Azure团队 |
| LTS版本 | 8/11/17/21/25(与Oracle LTS版本同步) |
| 优化方向 | Windows系统深度集成、.NET互操作性、Azure云原生优化 |
| 特色功能 | 内置WinRT支持、DirectStorage API集成 |
| 安装方式 | Windows Installer/ZIP、Linux DEB/RPM、macOS PKG/TAR.GZ |
| 下载链接 | Microsoft Learn |
4. 其他主流发行版
| 发行版名称 | 维护方 | LTS支持周期 | 核心特点 |
|---|
| Azul Zulu Community | Azul Systems | 8/11/17/21 | 免费社区版提供完整JDK功能,商业版增加诊断工具和扩展支持 |
| Red Hat OpenJDK | Red Hat | 8/11/17/21 | 通过RHEL订阅免费获取,专为企业中间件/大数据场景优化 |
| IBM Semeru Runtime | IBM | 8/11/17/21 | 基于OpenJDK的完全兼容实现,支持IBM Power Systems和z/OS架构 |
三、版本选择决策树
graph TD
A[选择OpenJDK版本] --> B{是否需要LTS?}
B -->是
C[选择Oracle 8/11/17/21/25 或 Temurin对应版本]
B -->否
D[选择最新非LTS版本(12-24)]
C --> E{是否需要商业支持?}
E -->是
F[选择Oracle商业订阅或Temurin企业版]
E -->否
G[使用免费社区版]
四、关键注意事项
- 许可证变更
• 自JDK 17起,Oracle JDK商业用途需购买订阅(个人/开源项目可继续免费使用);
• 所有OpenJDK发行版均遵循GPLv2+CE协议; - 性能差异
场景 推荐发行版 优化项
云原生容器化 Amazon Corretto Graviton指令集优化、轻量级内存管理;
Windows桌面应用 Microsoft Build DirectStorage API集成、WinRT互操作;
高并发服务器端 Temurin/Zulu ZGC/ Shenandoah GC低延迟调优; - 安全更新
• 所有LTS版本均提供至少8年安全更新;
• 非LTS版本仅提供6个月安全补丁;
• 重要安全漏洞会提供跨版本修复(如Log4j漏洞修复覆盖JDK 8-25);
建议收藏本文档,建议每6个月检查一次https://openjdk.java.net/projects/更新.
Email:zhangfeng@chaizhou.com