首页 > 编程笔记
JDK的不同版本
JDK 是最基础的 Java 开发工具,很多 Java IDE 工具(如 Eclipse、IntelliJ IDEA 和 NetBeans 等)的运行都需要依赖 JDK。
Oracle 公司仅允许少数的免费使用场景,如个人用户使用或支持开发工作使用(调试、支持IDE软件运行等)。
目前,Oracle 公司每次在发布 JDK 时,都会同时发布对应的 OpenJDK。一些大型的技术公司会在 OpenJDK 的基础上开发自己版本的 JDK,如阿里巴巴的 Dragonwell 和亚马逊的 Corretto 等。
值得一提的是,自 Games Gosling 加入亚马逊,他负责的一项重要工作就是推动 Corretto 的发展。
例如,JDK 17 是截至 2022 年 10 月最新的 LTS 版本,发布于 2021 年 9 月,结束支持的日期为 2029 年 9 月。
截至 2023 年 2 月仍处于维护期内的 LTS 版本包括 JDK 8、JDK 11 和 JDK 17。
目前较为流行的 LTS 版本是 JDK 8 和 JDK 11,占总使用量的 90% 以上。
Oracle JDK 和 OpenJDK
从是否收费的维度来看,JDK 可分为两个版本,分别是 Oracle JDK(一般简称 JDK)和 OpenJDK。Oracle JDK
Oracle JDK 是 JDK 的收费版本,其中包含 Oracle 公司的商用技术。Oracle 公司仅允许少数的免费使用场景,如个人用户使用或支持开发工作使用(调试、支持IDE软件运行等)。
OpenJDK
OpenJDK 是 JDK 的免费开源实现,是 Sun 公司于 2006 年开始的一系列努力的成果。目前,Oracle 公司每次在发布 JDK 时,都会同时发布对应的 OpenJDK。一些大型的技术公司会在 OpenJDK 的基础上开发自己版本的 JDK,如阿里巴巴的 Dragonwell 和亚马逊的 Corretto 等。
值得一提的是,自 Games Gosling 加入亚马逊,他负责的一项重要工作就是推动 Corretto 的发展。
LTS 版本和非 LTS 版本
从是否持续维护的维度来看,JDK 可以分为 LTS 版本和非 LTS 版本。2017 年,Oracle 公司公布了新的 JDK 版本发行周期,计划每3年发布一个 LTS 版本,每半年发布一个非 LTS 版本。LTS 版本
LTS 表示长期支持版,即在截止日期前,会持续修复该版本的 Bug,并发布免费的修复版。例如,JDK 17 是截至 2022 年 10 月最新的 LTS 版本,发布于 2021 年 9 月,结束支持的日期为 2029 年 9 月。
非 LTS 版本
非 LTS 版本的维护期较短,一般到下一个非 LTS 版本发布时结束。例如,JDK 19 是截至 2022 年 10 月最新发布的非 LTS 版本,发布于 2022 年 9 月,结束支持的日期为 2023 年 3 月。截至 2023 年 2 月仍处于维护期内的 LTS 版本包括 JDK 8、JDK 11 和 JDK 17。
我的建议
个人开发者在学习 Java 时,选择 Oracle JDK 或 OpenJDK 均可(建议选择 LTS 版本)。在生产环境中普遍使用 LTS 版本,使用非 LTS 版本的占比仅为 2.7% 左右。目前较为流行的 LTS 版本是 JDK 8 和 JDK 11,占总使用量的 90% 以上。