您的位置 首页 java

Java仍然可以零成本获得?

java 生态系统一直建立在Oracle和以前的Sun提供的高质量免费(零成本) jdk 之上。这在今天仍然是事实,但近六个月的发布周期确实意味着一些重大变化正在发生。

六个月的发布

Java现在每六个月发布一次,这极大地影响了每个版本的支持方式。所谓支持,我的意思是提供带有安全补丁和重要bug修复的更新版本。

包括Java 8在内,多年来一直提供$ free支持。当然是在下一个版本推出之前。有了Java 9和六个月的发布周期,这个免费的支持现在受到更严格的控制。

事实上,从Java 11开始,Oracle将不再为Java提供免费的长期支持(LTS)。

这个想法很简单。甲骨文希望将精力集中在通过客户直接支付的长期支持成本来推动Java向前发展(而不是免费赠送)。要做到这一点,他们需要开发人员不断升级他们的Java版本,每六个月更换一次版本(并且在此期间升级补丁版本)。当然,对于大多数开发企业来说,这种快速升级是不可行的。但Java现在被开发为OpenJDK,这意味着Oracle的支持日期或许并不是我们唯一需要考虑的日期。

OpenJDK

需要掌握的一个关键点是,世界上大多数JDK的构建都基于开源OpenJDK项目。Oracle JDK只是基于OpenJDK代码库的众多构建之一。虽然过去Oracle在JDK中有额外的附加功能,但从Java 11开始,情况就已经不再如此。

许多其他供应商也提供基于OpenJDK代码库的构建。这些构建可能具有额外的品牌和/或其他非核心功能。这些供应商中的大多数也回馈上游OpenJDK项目,包括安全补丁。

其影响是,您使用的JDK现在是您主动制作的选择,而不是被动接受。您多快可以获得安全补丁?它会支持多长时间?您是否需要向供应商施加合同压力以帮助解决问题?

此外,获得JDK有两种主要方式。第一个是在操作系统中构建一个更新机制(例如。* nix)。第二种是访问URL并下载二进制文件(例如Windows)。

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

坚持Java 8

如果你想在2019年1月之后继续使用Java 8,以下是我的选择:

1)不关心安全。

完全有可能永远留在最后一个免费版本发布上。当黑客摧毁你的公司时,那就不要抱怨了。

2)依靠操作系统更新。

在* nix平台上,您可以通过操作系统获得JDK(例如Red Hat,Debian,Fedora,Arch等)。JDK的更新是通过操作系统供应商提供的。这是Red Hat参与的关键所在,他们承诺Java 8的更新将持续到2023年6月,直到Red Hat Enterprise Linux。但他们也有一个“上游优先”政策,这意味着他们更愿意将修复工作推回到“上游”OpenJDK项目。是否获得JDK的安全补丁取决于您的操作系统供应商,以及他们是否需要您为这些更新付费。

3)支付费用。

许多公司,包括Azul,IBM,Oracle和Red Hat,都在为Java提供持续的支持。通过付费,您可以访问安全补丁流并提供某些具有保证的更新版本(而不是志愿者主导的方法)。如果你有现金,也许支付Java是更公平合理的?

4)在商业环境中使用非商业版本。

Oracle将在2019年12月之前提供用于非商业用途的Java 8版本,因此您可以使用它们。但是你不希望甲骨文的软件授权团队一直追着你,是么?

5)自己构建OpenJDK。

安全补丁流*在GPL许可下发布到公共Mercurial存储库。因此,完全可以通过跟踪对该存储库的提交来自己构建OpenJDK。我怀疑这对大多数公司来说不是一个非常现实的选择。

6)使用AdoptOpenJDK的构建。

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

请注意,Azul还在zulu. org 上提供了免费的OpenJDK版本。

*最后两个选项假设,一旦Oracle停止,一个团队将会站出来接管“JDK 8更新”OpenJDK项目。虽然具体的项目细节还没有得到确认,但是IBM的声明表明了对该方法的真正支持:

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

鉴于6月份的支持日期和“上游优先”政策,我们很难看到红帽没有对这一努力做出贡献。

坚持使用Java 9或Java 10

没有人想为Java 9或Java 10提供构建或支持。无论如何,在我看来没有充分的理由不升级到Java 11。

坚持Java 11

首先,目前尚不清楚是否可以免费下载Oracle JDK。尽管我做了最好的尝试,但在这一点上我无法100%清晰。

但实际上,Oracle JDK是否可以免费下载是无关紧要的。这是因为从Java 11开发中,人员可以将Oracle JDK和OpenJDK视为等效对象。将OpenJDK构建视为次要或不太重要已不再合适或正确。事实上,现在最重要的构建是OpenJDK构建。

更具体地说,截至发布日期,Java 11开发人员应该考虑使用jdk.java.net来获取二进制下载,而不是oracle.com上的任何页面。

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

同样,对此的答案并非100%明确:

> Java 11将从Oracle获得什么?

在上至少有六个月的免费GPL许可更新和二进制代码更新。

(我说“至少”因为这是当前的计划。如果情况需要,计划可能会更改到更长的时间段。)

显然,六个月的支持不足以将Java 11视为“长期支持”(LTS)版本。由于公司需要更长的时间和更多的确定性,因此这段时间可能更长,但并没有起到真正的帮助。所以应该假设Java 11只有6个月的版本,其中包含来自Oracle的安全补丁。

在这一点上,事物进入了概率领域。很可能,当Oracle从管理OpenJDK(包含安全补丁的那个)的“JDK 11更新”项目中退出时,其他人将接管。这在Java 6和7之前已经发生过。而且有证据表明Java 11也会发生这种情况:

OpenJDK是一个社区项目。由社区来支持它。在实践中,这意味着一组组织和个人将在一段时间内维持每个OpenJDK LTS版本(TBA为11,但它确实是*很多*超过六个月。)我确信将有一个jdk11u项目,它将适当和专业地运行。我认为我可能会领导该项目,但可能会选择其他人。

这涵盖了包含安全补丁的存储库。(Red Hat在为更广泛的社区维护旧版OpenJDK方面有着出色的记录。)但是仍然存在生成要下载的实际版本的问题,这些版本已通过Java SE测试TCK认证。

这是AdoptOpenJDK构建服务器场的关键所在:

作为Andrew提到的讨论的一部分,AdoptOpenJDK提供了为主要(和几个次要)平台构建、测试和提供OpenJDK LTS二进制文件。这还没有具体落实,但人们普遍认为这是一个好主意。因此,解决了为此联合工作构建和测试服务器场所面临的挑战。

AdoptOpenJDK目前​​计划在Java 17发布一年后的2022年9月创建版本。

如果人们按照他们的意愿行事,那么我们就可以得出这样的结论:从发布开始,使用Java 11可以使用安全补丁4年,免费(零成本)。(我想如果志愿者挺身而出,那么2022年9月的日期可能会被进一步推后。)

当然,只有您和您的公司才能决定在不回馈生态系统的情况下使用Java是否正确。可以说,支付支持或协助AdoptOpenJDK或“JDK 11更新”OpenJDK项目更为道德。

平台

Oracle在上构建的OpenJDK仅涵盖三个平台。但这并不意味着它们是OpenJDK运行的唯一平台。例如,AdoptOpenJDK在7个平台上提供Java 8构建,包括Hotspot(包括ARM)和更多具有OpenJ9(包括Windows 32位)的平台。

总结

Java 11的所有部分都将作为长期支持版本进行维护。但是,与Java 6,7和8不同,Oracle不会引领长期支持。很有可能,红帽将接管这项任务,他们已经公开表示他们愿意。

在Java 11的前6个月中,Oracle将在jdk.java.net上提供带有安全补丁的GPL许可免费零成本下载。

要在前六个月获得GPL许可的Java 11免费零成本更新版本,您可能需要从不同的URL和不同的构建团队获取它们。目前,我认为AdoptOpenJDK构建服务器场是查找这些构建的地方。但zulu.org是另一种可能性。

文章来源:智云一二三科技

文章标题:Java仍然可以零成本获得?

文章地址:https://www.zhihuclub.com/195876.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图