【方向盘】Oracle Java SE Support Roadmap:支持JDK 8到2030年

简介: Java的发展史,也伴随着JVM的变迁史

在这里插入图片描述

本文已被 https://yourbatman.cn收录; 女娲Knife-Initializr工程可公开访问啦;程序员专用网盘 https://wangpan.yourbatman.cn;技术专栏源代码大本营: https://github.com/yourbatman/tech-column-learning;公号后台回复“ 专栏列表”获取全部小而美的 原创技术专栏

你好,这里是Java方向盘,我是方向盘(YourBatman),坐稳扶好,开始发车。

Title Link
所属专栏 【方向盘】-资讯/新特性
源代码 https://github.com/yourbatman/FXP-java-ee
程序员专用网盘公益上线啦,注册送1G超小容量,帮你实践做减法 https://wangpan.yourbatman.cn
Java开发软件包(Mac) https://wangpan.yourbatman.cn/s/rEH0 提取码:javakit
女娲工程 http://152.136.106.14:8761
版本约定 [2022 Oracle Java SE支持路线图]

✍前言

通过这篇文章【方向盘】2021年JVM生态报告:Java 11使用率超Java 8 了解到,Oracle JDK正在逐渐失去其市场份额,OpenJDK正在崛起。

作为Java领域从业者,Oracle的一举一动关系着这个江湖,特备是在不平静的当下,Oracle定会采取行动试图保住江山。这不,前不久Oracle公布了其最新的Java SE支持Roamap,本文咱就一起来了解下。

✍正文

几十年来,Java 生态系统已经成功地经历了多个过程,经历了十次主要的平台修订。开发者比较关注LTS版的JDK,现在更新到哪个版本了,后续的支持情况是什么样的,这里借助Oracle官方来解答这些疑问,把握JDK的发展动向。

Oracle Java SE支持路线图

2022年3月底,Oracle更新了最新版的Java SE支持线路图,以帮助了解维护和支持选项以及相关时间表。

✌Oracle客户分类解释说明

个人用户、开发用户和其他用户:指根据Java SE的Oracle技术网络许可协议免费使用 Java SE的用户。包括在个人台式机或笔记本电脑上免费使用Java SE 的个人,或将Java SE用于开发用途的个人

所有用户:都是根据Oracle免费条款和条件许可条款(NFTC协议)免费使用 Java SE 17 及更高版本的用户

Tips:所有用户给出了解释,Oracle怕是对所有二字有什么误解吧。套路太深了

✌Oracle产品支持的三个策略

任何产品都有自己的支持策略,一个产品不可能无期限的给予最高优先级的支持。比如我们习以为常的iOS系统,也不可能将10年前的iPhone一直支持下去。

Oracle也不例外,对自家产品进行分级支持。不同的产品、在不同的时期,支持的强度也不一样。强度分为:

  • Premier Support(高优支持)

    • 一般为5年,可以得到技术支持、更新、bug修复、安全警报、数据修复、关键补丁更新
  • Extended Support(扩展支持)

    • 额外3年支持,服务基本同上,但优先级低,更新频率变低
  • Sustaining Support(持续支持)

    • 它的特点是支持的时间长,但支持的项目较少,响应慢

✌Oracle Java SE产品版本

Oracle作为Java SE的官方,提供标准支持。对于Java SE 8之后的产品版本,Oracle 将仅将某些版本指定为长期支持 (LTS) 版本,给与比较长时间的支持。Oracle计划每两年发布一次LTS 版本(每年9月份),这意味着下一个LTS 版本是2023 年9月的Java 21。

下面这张表展示了Java SE各个版本的支持日期:
在这里插入图片描述

✌Java SE 8公共更新结束

从上面表格可以看到,Java SE 8的支持时间(扩展支持)异常坚挺,直接超过了11和17这两个LTS版本,支持到2030年12月。

Oracle 将继续通过java.com为个人、开发和其他用户无限期地提供Java SE 8的免费公共更新和自动更新。开发者可以在这里找到Oracle Java SE的更新。

Oracle 不打算通过自动更新功能将桌面从 Java SE 8 迁移到更高版本。这包括 Java 插件和 Java Web Start。

✌Oracle JDK和Oracle OpenJDK

自2017年9月份依赖,Oracle就在开源许可协议(GPL v2)下提供JDK版本,也叫Oracle OpenJDK。Oracle 提供的 OpenJDK 版本的可用性和社区支持在jdk.java.net上单独列出。

自 2021 年 9 月起,Oracle为Java 17及更高版本提供适用于所有用户的免费使用许可(NFTC)的 Oracle JDK。

Tips:NFTC协议需要仔细阅读,警防上了Oracle套

✌Web部署技术和JavaFX

这两项技术可谓是比较古老的技术了,和JRE绑定在一起。Web部署技术由Java PluginJava Web Start组成,具有很短的支持生命周期。

在Java SE 9和Java SE 10 中,Deployment Stack被标记为已弃用并标记为删除。Java SE 11及更高版本不再包括部署堆栈。因此,Java SE 8作为最后一个具有Deployment Stack的LTS版本,Oracle将会支持到Java SE 8结束。

JavaFX 已开源并经过重新设计,可作为独立库使用,而不是包含在 JDK 中。从 Java SE 11 开始,JavaFX 不包含在 Oracle JDK中。Java SE 8 上对JavaFX 的支持将持续到 2025 年 3 月。
在这里插入图片描述
下面是知识点,对这几个夕阳红技术做简要说明。

什么是Deployment Stack?

Java的Deployment Stack技术在JDK 9中标记为弃用,在JDK 11中已删除。 它是JRE的工具类库(deploy.jar), 为Java Web Start、Applets技术提供支持。

什么是Java Web Start?

Java Web Start是基于Java 技术的应用程序的一种部署解决方案。从Java 5.0发布版本开始,Java 运行时环境 (JRE) 中就包含Java Web Start。这意味着安装 Java 时,将自动安装 Java Web Start。

Java Web Start支持多种方式来启动应用程序:

  • 单击Web页中的链接启动
  • 通过创建快捷方式,点击桌面图标启动
  • 通过Application Cache Viewer,从Java控制面板中启动

    • 以Windows为例:开始 > 设置 > 控制面板,双击Java图标打开Java控制面板
  • 通过命令行方式启动:javaws url_of_jnlp

什么是JavaFX?

在JDK 11以前,JavaFX是包含在JDK里的,可以直接使用。JDK11之后,JavaFX就从JDK中分离出来,必须单独下载;或者从IDEA里直接构建:
在这里插入图片描述
(独立后的)JavaFX是一个开源的下一代客户端应用平台,适用于基于Java构建的桌面、移动端和嵌入式系统。 它是许多个人和公司的共同努力的成果,目的是为开发丰富的客户端应用提供一个现代、高效、功能齐全的工具包。

这是它的官方中文网站:https://openjfx.cn

有些言论说从Java 8开始就没有JavaFX了,为了验证这个问题,我特意看了看,辟谣了:
在这里插入图片描述

OpenJDK的Java SE支持路线图

看完Oracle的JDK/Java SE支持线路图,回头再看看OpenJDK的。
在这里插入图片描述
由于OpenJDK发行版众多,这里再介绍两个发行版:Microsoft OpenJDKAlibaba Dragonwell

✌Microsoft OpenJDK

官方地址:https://docs.microsoft.com/zh-cn/java/openjdk

同样基于上游OpenJDK(由Oracle管理),LTS版本都通过了Oracle的TCK测试。

支持策略

Microsoft Build of OpenJDK 的 LTS 版本将收到免费季度更新,可在上面官方地址获得。

Microsoft Build of OpenJDK二进制文件可能包含修补程序增强功能,我们认为对客户很重要但尚未合并到上游 OpenJDK 项目中。 在发行说明中,尚未正式上游的修补程序和增强功能将在我们的发行说明中清楚地标出,其中包含可用的源代码。

Azure客户支持

具有在线提工单的商业支持

社区支持

github提issue

Roadmap

OpenJDK的节奏非常快,6个月发布一个版本。但是Microsoft只会对LTS版本提供长期支持,对应时间表为:
在这里插入图片描述

Tips: *表示Windows x86 32 位上的 OpenJDK 17支持将于2023 年1月10日结束,这里指的64位的系统

值得一提的是,Microsoft JDK并没有JDK 8版本。因为Microsoft认为,现在问题已经不是“应不应该迁移到JDK 11”了,而是“何时”。既然是必然趋势,而Microsoft JDK并无历史包袱,就一步越到11。

操作系统要求

Microsoft JDK支持如下操作系统:
在这里插入图片描述
支持得是非常全面的,Windows、macOS、Linux三大系统都支持,还支持Arch64架构呢。

✌Alibaba Dragonwell

官方地址:https://dragonwell-jdk.io

阿里巴巴承诺“龙井”是长期支持版本,提供8/11/17三大版本支持(仅Linux系统):

承诺按季度更新。阿里云为此也做了背书:
在这里插入图片描述

✍总结

通过本文似乎能读出Oracle意识到了危机,讨好用户的用意:

  • 对Java SE 8的支持一直到了2030年12月,稳定基本盘
  • 对Java SE 17开始给“所有用户”【免费】使用,诚意满满

    虽然Oracle JDK宣布收费,OpenJDK像雨后春笋般成长出来,经历住了市场的考验,大批用户倒戈。作为开发者,你是更看好官方纯正血统的Oracle JDK还是开放自由的OpenJDK呢?

本专栏上下文

推荐阅读

在这里插入图片描述

我是方向盘(YourBatman):前25年不会写Hallo World、早已毕业的大龄程序员。高中时期《梦幻西游》骨灰玩家,网瘾失足、清考、延期毕业、房产中介、保险销售、送外卖...是我不可抹灭的黑标签

  • 🎓2013.07 清考、毕业答辩3次未通过、延期毕业
  • 🏷2013.08-2014.07 宁夏中介公司卖二手房1年,毕业后第1份工作
  • ️️🏷2014.07-2015.05 荆州/武汉,泰康人寿卖保险3月、饿了么送外卖2月,还有炸鸡排、直销等第2345份工作
  • 🏷2015.08 开始从事Java开发,闯过外包,呆过大厂!擅长抽象思维,任基础架构团队负责人
  • 🏷2021.08 因“双减政策”失业!历经9面,终获美团外卖L8的offer
  • 🙅🏻‍♀️Java架构师、Spring开源贡献者、CSDN博客之星年度Top 10、领域建模专家、写作大赛1/2届评委
  • 📚高质量代码、规范践行者;DDD领域驱动深度实践;即将出版书籍《Spring奇淫巧技》

在这里插入图片描述

序号 专栏名称 简介
01 【方向盘】-程序人生 程序人生,人生程序
02 【方向盘】-资讯/新特性 IDEA、JDK、Spring技术栈......新特性
03 【方向盘】-IntelliJ IDEA 熟练使用IDEA就相当拥有物理外挂,助你高效编码
04 【方向盘】-Bean Validation 熟练掌握数据校验,减少90%的垃圾代码
05 【方向盘】-日期时间 帮你解决JDK Date、JSR 310日期/其实 的一切问题
06 【方向盘】-Spring类型转换 Spring类型转换-框架设计的基石
07 【方向盘】-Spring static static关键字在Spring里的应用
08 【方向盘】-Cors跨域 关于跨域请求问题,本专栏足矣
09 【方向盘】-Jackson Almost Maybe是最好的Jackson专栏
10 【方向盘】-Spring配置类 专讲@Configuration配置类,你懂的
11 【方向盘】-Spring技术栈 暂无所属小分类的,Spring技术栈大分类
12 【方向盘】-JDK 暂无所属小分类的,JDK技术栈大分类
13 【方向盘】-Servlet Servlet规范、Web相关内容专题
14 【方向盘】-Java EE 从Java EE到Jakarta EE,30年弹指一挥间
15 【方向盘】-工具/提效 开发工具、软件工具,目标是提效
16 【方向盘】-Spring技术栈新特性 Spring Framework、Spring Boot、Spring Cloud、Spring其它技术
17 【方向盘】-基本功 每个Javaer,都需要有扎实的基本功
... ... ...
99 源代码库 大多数专栏均配有源代码,都在这里
目录
相关文章
|
1天前
|
Java 开发框架 XML
JDK、JRE、Java SE、Java EE和Java ME有什么区别?
JDK、JRE、Java SE、Java EE和Java ME有什么区别?
|
3天前
|
Java
【JAVA进阶篇教学】第四篇:JDK8中函数式接口
【JAVA进阶篇教学】第四篇:JDK8中函数式接口
|
3天前
|
Java API
【JAVA进阶篇教学】第三篇:JDK8中Stream API使用
【JAVA进阶篇教学】第三篇:JDK8中Stream API使用
|
3天前
|
Java
【JAVA进阶篇教学】第二篇:JDK8中Lambda表达式
【JAVA进阶篇教学】第二篇:JDK8中Lambda表达式
|
3天前
|
Java API
【JAVA进阶篇教学】第一篇:JDK8介绍
【JAVA进阶篇教学】第一篇:JDK8介绍
|
3天前
|
Oracle 关系型数据库 Java
java操作多数据源将oracle数据同步达梦数据库
java操作多数据源将oracle数据同步达梦数据库
|
4天前
|
Java
JDK环境下利用记事本对java文件进行运行编译
JDK环境下利用记事本对java文件进行运行编译
13 0
|
2天前
|
IDE Java Shell
02|手把手教你安装JDK与配置主流IDE
02|手把手教你安装JDK与配置主流IDE
6 0
|
4天前
|
Java Shell 开发者
都2024年了!你还不知道在Docker中安装jdk?
都2024年了!你还不知道在Docker中安装jdk?
|
4天前
|
存储 Cloud Native Java
Anolis安装Jdk保姆级教学
Anolis安装Jdk保姆级教学