JDK8终将走进历史,Oracle宣布JDK继续免费

目录

  • 前言
  • Oracle 已免费提供 JDK
  • Oracle Java SE 产品最新动态
  •  为什么业界中用JDK8那么多
  • Java SE 8 公共更新结束
  • 总结

前言

        今天想到上个月无意中听闻到的一句话:JDK8之后收费了,所以大家都用JDK8。当时只觉得这个话说得不对,但因为和说话的人不认识也就过去了。今天想到此事之后,为了不让更多的朋友误解JDK8和Oracle,还是决定写一篇文章说说此事。

Oracle 已免费提供 JDK

        2021年09月14日,JAVA 17 带来的不仅仅是新功能。更快的 LTS 节奏和免费的 Oracle JDK 使其成为有史以来支持最好的现代版本。Oracle JDK收费为人诟病,此次Oracle推出了Free Java License ,大致摘要:

  • Oracle 正在免费提供行业领先的Oracle JDK,包括所有季度安全更新。这包括商业和生产用途。
  • 新许可是“Oracle 免费条款和条件”(NFTC) 许可。此 Oracle JDK 许可证允许所有用户免费使用,甚至可以用于商业和生产用途。只要不收费,再分发是允许的。
  • 开发人员和组织现在无需点击即可轻松下载、使用、共享和重新分发 Oracle JDK。
  • Oracle 将从Oracle JDK 17开始提供这些免费版本和更新,并在下一个 LTS 版本之后继续提供整整一年。以前的版本不受此更改的影响。
  • Oracle 将继续按照自 Java 9 以来的相同版本和时间表提供GPL下的Oracle OpenJDK 版本。

Oracle Java SE 产品最新动态

        截至到2024年1月14日,Oracle 为客户提供针对 Oracle Java SE 产品的 Oracle 标准支持服务,如 Oracle 终身支持政策中所述。对于 Java SE 8 之后的产品版本,Oracle 将仅将某些版本指定为长期支持 (LTS) 版本。Java SE 8、11、17 和 21 是 LTS 版本。Oracle 打算每两年发布一次未来的 LTS 版本,这意味着下一个计划的 LTS 版本是 2025 年 9 月的 Java 25。就 Oracle 标准支持服务而言,非 LTS 版本被视为最新 LTS 版本的一组累积实施增强功能。一旦新功能版本可用,任何以前的非 LTS 版本都将被视为被取代。例如,Java SE 9 是一个非 LTS 版本,并立即被 Java SE 10(也是非 LTS)取代,而 Java SE 10 又立即被 Java SE 11 取代。但是,Java SE 11 是 LTS 版本,因此即使 Java SE 12 已发布,Oracle 客户也将获得 Oracle 标准支持和定期更新版本。

        Oracle Java SE 产品的一些关键产品日期示例包括:

Oracle Java SE 支持路线图*†
释放GA 日期高级支持截止时间延长支持期限至持续支持
8 (LTS)**2014 年 3 月2022 年 3 月2030 年 12 月*****不定
9 - 10(非 LTS)2017年9月至2018年3月2018年3月至2018年9月不可用不定
11 (LTS)2018 年 9 月2023 年 9 月2032 年 1 月*****不定
12 - 16(非 LTS)2019年3月至2021年3月2019年9月至2021年9月不可用不定
17 (LTS)2021 年 9 月2026 年 9 月****2029 年 9 月****不定
18(非 LTS)2022 年 3 月2022 年 9 月不可用不定
19(非 LTS)2022 年 9 月2023 年 3 月不可用不定
20(非 LTS)2023 年 3 月2023 年 9 月不可用不定
21 (LTS)2023 年 9 月2028 年 9 月****2031 年 9 月****不定
22(非 LTS)***2024 年 3 月2024 年 9 月不可用不定
23(非 LTS)***2024 年 9 月2025 年 3 月不可用不定
24(非 LTS)***2025 年 3 月2025 年 9 月不可用不定
25 (LTS)***2025 年 9 月2030 年 9 月2033 年 9 月不定

 为什么业界中用JDK8那么多

        JDK8有很多优点,所以很多人选择使用它。以下是一些常见的原因:

  1. JDK8版本是长期支持版本,得到了Oracle公司的官方支持,可以获得稳定的技术支持和更新。
  2. JDK8版本引入了许多新的特性,例如函数式编程、Lambda表达式、流式处理等,这些特性可以使代码更加简洁、易读、易维护,并且可以提高开发效率。
  3. JDK8版本在之前的版本上在性能优化进行了很多改进,包括在JIT编译器中引入了新的优化技术,提高了代码的执行效率。
  4. JDK8版本对于开发工具提供了更好的支持,例如新的日期/时间API、新的并发工具等,能够帮助开发人员更加方便地进行开发。
  5. JDK8版本在安全性方面进行了一些改进,提供了更好的安全保护机制,能够帮助企业防止安全漏洞。
  6. 技术更新是需要过程的,在市场各产品和服务没有同步达到足够的稳定安全状态的情况下,为了减少风险,企业和个人都会选择相对稳定的老版本坚持使用。

Java SE 8 公共更新结束

        Java SE 8 已经完成了旧版的公共更新结束过程。Oracle 将继续通过 java.com 无限期地为个人用户、开发人员用户和其他用户提供免费的 Java SE 8 公共更新和自动更新。如果设置了终止日期,Oracle 将在此页面和其他通信渠道上提供至少 18 个月的通知。

        Oracle 不打算通过自动更新功能将桌面从 Java SE 8 迁移到更高版本。这包括 Java 插件和 Java Web Start。我们鼓励应用程序开发人员使用 Java SE 9 引入的打包选项,将他们的 Java 应用程序重新打包并交付为包含他们自己的自定义运行时的独立应用程序,而不是依赖于浏览器可访问的系统 JRE。

        Java SE 8 是推荐的、唯一受支持的部署堆栈版本。Java SE 8 部署堆栈可用于在 Windows 平台上运行 Java SE 7 或 Java SE 8 应用程序。Java SE 8 之后将不再支持 Java 部署技术。有关详细信息,请参见 Oracle 终身支持政策。

        JavaFX 已开源并重新设计为可作为独立库使用,而不是包含在 JDK 中。从 Java SE 11 开始,JavaFX 不包含在 Oracle JDK 中。Java SE 8 上对 JavaFX 的支持将持续到 2025 年 3 月。

支持部署技术和 JavaFX*
版本GA 日期Java Web Start 支持直到Java 插件(小程序)支持直到JavaFX 支持截止
62006年12月2017 年 10 月2017 年 10 月不适用
72011 年 7 月2017 年 10 月2017 年 10 月2019 年 7 月
82014 年 3 月2030 年 12 月2019 年 3 月2025 年 3 月
9 及更高版本不适用不适用不适用

        Java SE 11 将在 2023 年 10 月至 2032 年 1 月期间免除扩展支持提升费用。Java SE 8 将在 2022 年 3 月至 2030 年 12 月期间免除扩展支持提升费用。在此期间,您将获得“技术支持策略”的“Oracle 技术支持级别”部分所述的扩展支持。

总结

        JDK17、JDK19、JDK21版本也是JDK8之后Oracle官方所声明地长期支持版本。当这些LTS产品还需要通过市场的不断检验很升级,未来一定会有新的JDK版本又一次占据JDK主流的。JDK8终将会像曾经的JDK5一样,被当下的人们所淡忘。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/622523.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django数据库选移的preserve_default=False是什么意思?

有下面的迁移命令: migrations.AddField(model_namemovie,namemov_group,fieldmodels.CharField(defaultdjango.utils.timezone.now, max_length30),preserve_defaultFalse,),迁移命令中的preserve_defaultFalse是什么意思呢? 答:如果模型定…

点击随机红点的简单游戏(pygame)

import pygame import sys import random# 初始化 Pygame pygame.init()# 设置窗口大小 width, height 800, 600 screen pygame.display.set_mode((width, height)) pygame.display.set_caption("Click the Red Dot")# 定义颜色 black (0, 0, 0) red (255, 0, 0)…

Apache POI 导出Excel报表

大家好我是苏麟 , 今天聊聊Apache POI . Apache POI 介绍 Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。 一般情况下,POI 都是用于操作 E…

浅谈 Raft 分布式一致性协议|图解 Raft

前言 大家好,这里是白泽。本文是一年多前参加字节训练营针对 Raft 自我整理的笔记。 本篇文章将模拟一个KV数据读写服务,从提供单一节点读写服务,到结合分布式一致性协议(Raft)后,逐步扩展为一个分布式的…

Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图像圆图,Kotlin(3)

Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图像圆图,Kotlin(3) 在 Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图像圆图,Kotlin&#…

读写分离的手段——主从复制,解决读流量大大高于写流量的问题

应用场景 假设说有这么一种业务场景,读流量显著高于写流量,你要怎么优化呢。因为写是要加锁的,可能就会阻塞你读请求。而且其实读多写少的场景还很多见,比如电商平台,用户浏览n多个商品才会买一个。 大部分人的思路可…

List集合遍历过程中修改元素(有坑)

说来惭愧,学 java 2年了,对 “Java是值传递” 这句话还没有理解它的精髓,以至于编程的时候出现了一些错误,这里记录一下。 一.问题再现 1.1将List集合中的每个字符串更改为其他值 1.2将List集合中的对象更改为其他对象 二.问题分…

extern static 在linux 和 qt下差别

从五个点来说 1.p3.h 中 静态定义一个const的int 变量并且赋值 2.p5.h 声明函数test2的定义 3. 直接extern 引用声明 test1() 函数 而不是像p5.h一样 把函数声明写到头文件 在别的.c文件直接包含头文件 第二点和第三点 是引用声明函数的两种用法 4.main函数 中static静态定…

修改Echarts图表的标题和副标题的内容

直接上代码 var graphicConfig [ { type: "text", left: "center", top: "center", style: { text: "包日", // 初始化为空字符串 textAlign: "center", fill: "#000", fontSize: 14, fontWeight: "bold&qu…

光猫(无限路由器)插入可移动硬盘搭建简易版的NAS

1.场景分析 最近查询到了许多有关NAS的资料,用来替代百度云盘等确实有很多优势,尤其是具有不限速(速度看自己配置)、私密性好、一次投入后续只需要电费即可等优势。鉴于手上没有可以用的资源-cpu、机箱、内存等,查询到…

计算机找不到msvcp120.dll如何解决?总结五个可靠的教程

在计算机使用过程中,遇到“找不到msvcp120.dll”这一问题常常令人困扰。msvcp120.dll作为Windows系统中至关重要的动态链接库文件,对于许多应用程序的正常运行起着不可或缺的作用。那么,究竟是什么原因导致找不到msvcp120.dll呢?又…

【设计模式】什么场景可以考虑使用简单工厂模式

1.概述 工厂模式是一种创建型模式,主要作用就是创建对象,将对象的创建过程和使用的过程进行解耦。我们平时说的工厂模式实际上是对三种不同类型的工厂模式的统称,简单工厂、工厂方法、抽象工厂,而在23种设计模式中,只…

深度学习笔记(六)——网络优化(2):参数更新优化器SGD、SGDM、AdaGrad、RMSProp、Adam

文中程序以Tensorflow-2.6.0为例 部分概念包含笔者个人理解,如有遗漏或错误,欢迎评论或私信指正。 截图和程序部分引用自北京大学机器学习公开课 在前面的博文中已经学习了构建神经网络的基础需求,搭建了一个简单的双层网络结构来实现数据的分…

机器学习~从入门到精通(三)梯度下降法

一、梯度下降法 # 梯度下降不是一种算法,是一种最优化方法 # 上节课讲解的梯度下降的案例 是一个简单的一元二次方程 # 最简单的线性回归:只有一个特征的线性回归,有两个theta # 二、在多元线性回归中使用梯度下降求解 三、### R…

求斐波那契数列矩阵乘法的方法

斐波那契数列 先来简单介绍一下斐波那契数列: 斐波那契数列是指这样一个数列:1,1,2,3,5,8,13,21,34,55,89……这个数列从第3项开始 &…

行业内参~移动广告行业大盘趋势-2023年12月

前言 2024年,移动广告的钱越来越难赚了。市场竞争激烈到前所未有的程度,小型企业和独立开发者在巨头的阴影下苦苦挣扎。随着广告成本的上升和点击率的下降,许多原本依赖广告收入的创业者和自由职业者开始感受到前所未有的压力。 &#x1f3…

使用pygame实现简单的烟花效果

import pygame import sys import random import math# 初始化 Pygame pygame.init()# 设置窗口大小 width, height 800, 600 screen pygame.display.set_mode((width, height)) pygame.display.set_caption("Fireworks Explosion")# 定义颜色 black (0, 0, 0) wh…

基于Java SSM框架实现在线作业管理系统项目【项目源码】计算机毕业设计

基于java的SSM框架实现在线作业管理系统演示 JSP技术 JSP技术本身是一种脚本语言,但它的功能是十分强大的,因为它可以使用所有的JAVA类。当它与JavaBeans 类进行结合时,它可以使显示逻辑和内容分开,这就极大的方便了运动员的需求…

IPv6组播--SSM Mapping

概念 SSM(Source-Specific Multicast)称为指定源组播,要求路由器能了解成员主机加入组播组时所指定的组播源。 如果成员主机上运行MLDv2,可以在MLDv2报告报文中直接指定组播源地址。但是某些情况下,成员主机只能运行MLDv1,为了使其也能够使用SSM服务,组播路由器上需要提…

k8s-数据卷

存储卷----数据卷 容器内的目录和宿主机的目录进行挂载 容器在系统上的生命周期是短暂的,delete,k8s用控制创建的pod,delete相当于重启,容器的状态也会恢复到初识状态 一旦容器回到初始状态,所有得分后天编辑的文件…