Java生态系统一直以来是建立在一个高质量的免费(零成本)JDK之上的,它可以从甲骨文(Oracle)和以前的Sun获得。 今天的情况和以前一样。

Java现在每六个月发布一次版本,这个版本是指提供带有安全补丁和重要bug修复的更新版本。到目前为止,包括Java 8在内,已经提供了多年的免费支持,当使用Java 9以及遭遇六个月的发布周期时,这种免费的支持现在被控制得更严格了。

事实上,从Java 11开始,甲骨文将不会为Java提供免费的长期支持(Lts)。

下面是各个JAVA版本发布日期和免费结束日期。

[ code]版本 发布日期 甲骨文免费支持结束Java 8 2014年3月 2019年1月(商业用途)Java 9 2017年9月 2018年3月Java 10 2018年3月 2018年9月Java 11 2018年9月 2019年3月(可能延长)Java 12 2019年3月 2019年9月[/code]

理由很简单,甲骨文希望将精力集中在推动Java向前发展上,其成本是由客户直接支付的长期支持费用(而不是免费赠送),要做到这一点,他们需要开发人员不断升级他们的Java版本,每六个月移动一次版本(并在两者之间获取补丁版本)。

当然,对于大多数开发者来说,这种快速升级是不可行的,但是Java现在已经被开源为OpenJDK,这意味着Oracle的免费结束支持日期并不是令人担心的日期。

OpenJDK

需要注意的一点是,世界上大多数jdk构建版本都是基于开放源代码的OpenJDK项目,Oracle JDK只是基于OpenJDK代码库的许多构建版本之一,虽然以前Oracle在JDK中有额外的额外功能,但是Java 11已经不再是这种情况了。

许多其他供应商也提供基于OpenJDK代码的构建版本,这些版本可能具有额外的品牌和/或额外的非核心功能, 这些供应商中的大多数还会对OpenJDK项目做出贡献,包括安全补丁。

关键是,你使用的JDK应该是主动做出的选择,还是被动地接受 ?你能多快得到安全补丁?会支持多久?是否需要向供应商施加合同压力以帮助解决任何问题?

获得JDK的方法主要有两种, 第一种是操作系统中的更新机制(例如*nix), 第二种方法是访问URL并下载二进制文件。

为了进一步研究这一点,让我们分别看一下Java 8和Java 11。

停留在Java 8上

如果您想在2019年1月之后继续使用Java 8,下面是我所看到的选择:

1)不关心安全。

这是完全有可能永远停留在最后的免费发行版, 当黑客摧毁你的公司 不要抱怨 。

2)依赖操作系统更新。

在*nix平台上,您很可能通过操作系统获得JDK,JDK的更新是通过操作系统供应商交付的。 这是RedHat参与的关键-他们承诺 在RedHatEnterpriseLinux中Java 8更新直到2023年6月-但是他们也有一个“上游优先”策略,这意味着他们更愿意将补丁推回“上游”OpenJDK项目。 您是否获得到JDK的安全修补程序将取决于您的操作系统供应商,以及是否需要为这些更新支付费用。

3)支付服务费。

一些公司通过收费提供对Java的持续支持,可以访问安全补丁流并使用某些保证更新发布版本(而不是志愿者主导的方法)。 如果您有现金,那么支付Java可能是公平和合理的?

4)在商业环境下使用非商业架构。

甲骨文提供构建Java 8的非商业用途,直到2019年12月,所以你可以一直使用到那个日期为止,之后你想让甲骨文的软件授权团队追着你吗?

5)自己构建OpenJDK。

安全修补程序流通过跟踪GPL许可下的公共Mercurial存储库的提交,完全有可能自己构建OpenJDK。 对于大多数公司来说, 这可能是一个非常现实的选择。

6)使用AdoptOpenJDK的构建。

社区团队AdoptOpenJDK在过去的几年里,他们一直在忙着创建一个构建版本和测试平台。 因此,他们现在能够获取安全补丁的流*并将它们转换成发布版本,就像你从商业产品中获得的一样。 他们还在运行Java TCK(测试兼容性工具包),以允许这些构建被完全认证为Java SE。 他们的计划是在Java 8构建之前生产Java 8版本,直到2022年9月在Java 17发布一年后结束,这是一个社区构建农场项目, 但对于大多数不想付费使用Java 8的用户来说,这可能是最好的选择。

请注意,Azul还提供免费的OpenJDK版本构建zulu.org.

*最后两个选项假设,一旦Oracle停止,一个小组实际上会向前迈进,接管“JDK 8 Updates”OpenJDK项目, 确切的项目细节尚未确定时,IBM声明表明了对该方法的真正支持如下:

认识到发布周期的变化对Java开发人员的影响,IBM将与OpenJDK社区的其他成员合作,继续更新OpenJDK Java 8流,并使用安全补丁和关键的bug修复。我们打算在4年内保持当前LTS版本的安全性和高质量。这个时间尺度缩小了LTS版本之间的差距,为迁移提供了一年的时间。IBM还与许多合作伙伴和Java领导者一起投资于一个开放的构建和测试项目(AdoptOpenJDK.net),以便在OpenJDK和Eclipse OpenJ 9的常用平台上提供社区二进制文件。这些社区二进制文件经过TCK(Java SE规范)的遵从性测试,可供开发人员在生产中下载和使用。

考虑到他们2023年6月的支持日期和“上游第一”政策,也很难看到红帽没有对这一努力做出贡献。

停留在Java 9或Java 10上?

还是不要吧

没有人会为Java 9或Java 10提供构建或支持,无论如何,我认为没有理由不升级到Java 11。

停留在Java 11上?

这是一个美好的新世界,并不是百分之百清楚事情会发生的样子。

首先,尚不清楚是否会有免费下载的Oracle JDK。

但在现实中,甲骨文JDK是否免费下载并不重要。 这是因为在Java 11中,开发人员可以将Oracle JDK和OpenJDK视为等价的, 认为OpenJDK构建版本是次要的还是次要的不再是合适或正确的。 事实上,现在最重要的构建版本是OpenJDK。

更确切地说,在发布日期之前,Java 11开发人员应该考虑使用jdk.java.net若要获得二进制下载,请不要在Oracle.com.

那么,Oracle将为Java 11提供安全补丁多长时间?

同样,这方面的答案并非百分之百清楚。

总结

所有的部分都已经就绪,Java 11可以作为一个长期的支持版本来维护,但是,与Java 6、7和8不同的是,甲骨文将不会领导长期的支持工作。 很有可能红帽将接管这项任务-他们公开表示愿意。

在Java 11生命的头6个月,甲骨文将提供gpl许可的免费零成本下载jdk.java.net有安全补丁。

为了在头六个月后获得GPL许可的免费零成本更新版本,您可能需要从不同的URL和不同的构建团队获得它们。AdoptOpenJDK构建场是寻找那些建筑的地方,但是zulu.org是另一种可能性。

写在最后:欢迎留言讨论加关注,持续更新!!!

还想免费继续使用JDK吗?从java11以后别从Oracle下载了的更多相关文章

  1. iview 验证 trigger: 'blur,change', 同时加两个,省的每次还想input 还是 select

    iview 验证 trigger: 'blur,change', 同时加两个,省的每次还想input 还是 select dataRuleValidate: { name: [{ required: ...

  2. 经济学人精读笔记7:动乱当道,你还想买LV吗?

    2020/2/24 经济学人精读笔记7:动乱当道,你还想买LV吗? 标签(空格分隔): 经济学人 Part 1 Luxury goods A tale of two handbags Purveyor ...

  3. 发现AspNet.Core版本控制库Bug一枚,你还想入坑?

    我,博客写作小白一枚,注册账号多年却未曾留下只言片语,在潜水的这些年里从大家的博客中收获了很多新的知识忽觉惶恐心有不安,是时候给大家分享一些我的经验和教训了.嗯嗯,实话告诉大家前面的话的都是来凑字数的 ...

  4. 我就骂你了,我tm还想打你呢

    从地铁出来,一男的抽烟走在我前面,走了一路闻了一路二手烟. 进门,一个园区的,我直接骂了一句:caoni妈的 这哥们瞪着我,我也瞪着他 你骂我干什么 我闻了一路子二手烟 你可以走前面啊 我不走啊 我不 ...

  5. 使用过Fetch之后,你还想使用AJAX吗

    之前做数据交互的时候,请求数据一直使用ajax,看到网上有使用Fetch,所以也想拿来尝尝鲜 本次介绍只涉及fetch相关,传统的ajax基本上不涉及 当然你也要考虑兼容.浏览器支持情况. 一会这个只 ...

  6. SQL Server 未保存.sql文件,还想查看、修改一些建表语句、存储过程等怎么办?

    SP_HELPTEXT 表名/视图名/存储过程名:

  7. 要学的东西太多了,还想学习opencv

    资料先放这里,以后好好学 http://m.blog.csdn.net/column/details?alias=opencv-tutorial eclipse加载opencv库成功! B站视频教程资 ...

  8. 《一头扎进》系列之Python+Selenium框架设计篇2- 价值好几K的框架,不看白不看,看了还想看

    1. 简介 上一篇介绍了自动化框架的架构,今天宏哥就带领小伙伴或者童鞋们开始开工往这个框架里开始添砖加瓦.主要是介绍一个框架unittest单元测试框架和一种设计思想POM. 2. unittest单 ...

  9. [css flex布局]实例一,本来还想挺简单的,弄了挺久呢,先写一部分

    全是代码,直接拷走吧,看是不怎么好看的 参考:http://www.ruanyifeng.com/blog/search.html?cx=016304377626642577906%3Ab_e9ska ...

随机推荐

  1. 机器学习中的数学-线性判别分析(LDA)

    前言在之前的一篇博客机器学习中的数学(7)——PCA的数学原理中深入讲解了,PCA的数学原理.谈到PCA就不得不谈LDA,他们就像是一对孪生兄弟,总是被人们放在一起学习,比较.这这篇博客中我们就来谈谈 ...

  2. idea的alt+enter可以从菜单点吗

    在idea中,当java某个类的包没有引入的时候,可以通过alt+enter来实现包的引入,那么可以通过菜单按钮,或者右键的方式点出来吗? 我们知道eclipse如果某个类为止,放在这个报错的类上,e ...

  3. DNS寻址以及IP解析

    域名解析从右向左 DNS寻址: 1 客户端发送查询请求,在本地计算机缓存查询,若没有找到,就会将请求发送给dns服务器 2 先发送给本地的dns服务器,现在自己的区域内查找,若找到,根据此记录进行查询 ...

  4. macos的iptables功能是pfctl

    pfctl https://www.kokaruk.com/macos-pf-firewall/ https://blog.csdn.net/yjy1304/article/details/90762 ...

  5. HTML:给body增加全屏的背景图

    只需要在head中增加如下代码即可 <head> {#设置背景#} <style> body { height: 100%;width: 100%; background: u ...

  6. elk问题汇总

    解决方案: https://blog.51cto.com/michaelkang/2298689?source=dra 使用postman.  PUT请求, JSON格式

  7. ASP.NET CORE(C#)与Spring Boot MVC(JAVA)

    干货分享:ASP.NET CORE(C#)与Spring Boot MVC(JAVA)异曲同工的编程方式总结   目录 C# VS JAVA 基础语法类比篇: 一.匿名类 二.类型初始化 三.委托(方 ...

  8. visual studio 2017搭建linux c++开发环境

    https://blog.csdn.net/cekonghyj/article/details/77917433 https://blog.csdn.net/norsd/article/details ...

  9. php 微服务

    https://neatlifecoco.com/15618891575018.html https://juejin.im/post/5d3927816fb9a07ee27b58df https:/ ...

  10. 实现不同分辨率、不同浏览器下高度自适应、iframe高度自适应

    html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <tit ...