本文已被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 Plugin和Java 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 OpenJDK和Alibaba Dragonwell。
✌Microsoft OpenJDK
官方地址:https://docs.microsoft.com/zh-cn/java/openjdk
支持策略
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系统):
- https://github.com/alibaba/dragonwell8
- https://github.com/alibaba/dragonwell11
- https://github.com/alibaba/dragonwell17
承诺按季度更新。阿里云为此也做了背书:
✍总结
通过本文似乎能读出Oracle意识到了危机,讨好用户的用意:
- 对Java SE 8的支持一直到了2030年12月,稳定基本盘
对Java SE 17开始给“所有用户”【免费】使用,诚意满满
虽然Oracle JDK宣布收费,OpenJDK像雨后春笋般成长出来,经历住了市场的考验,大批用户倒戈。作为开发者,你是更看好官方纯正血统的Oracle JDK还是开放自由的OpenJDK呢?