对于这次的发布,我主要关注的就两个问题:
1、稳定吗?
2、收费吗?
后面的文字主要围绕这两个话题展开的。
一、稳定吗?
其实,对于企业用户来说,稳定可靠才是最重要的。那么刚刚发布的 JDK 11 到底稳定性如何呢?
如果你是付费用户,其实不用担心这个问题。
对于大多数的非付费用户来说,就得要考虑了,只有考虑清楚风险后,才敢迁移。
首先,这次有 OpenJDK 社区的站台「长期支持」,Oracle 提供了免费的 OpenJDK build,并承诺「维护 6 个月」。
再者,Andrew Haley 等社区专家也已经明确保证,会组建并领导「JDK-11-updates」项目,而且还做了相应的保证「见下图」。
就我看来,如果想迁移到 JDK 11 的企业,毫无疑问,前期肯定还是有试错成本的。因此,建议在新的项目中引入 JDK 11,不要乱动稳定的老业务。。。
二、收费吗?
其实关于 Oracle JDK 收费的问题,我记得 16 年,大家都在知乎上面讨论过,当时 R 大给出了完美的回答。
Oracle提供的 Java SE Advanced 系列的产品是收费的,只有在「通用计算」使用范围内是完全免费的。
这里的「通用计算」如何界定?比如,如果你使用了 -XX:+UnlockCommercialVMOptions 的功能,那么就得要收费;或者你将 Oracle Java SE 系列产品在「特殊嵌入式计算系统」中使用也会收费。
时隔两年,JDK 又将是如何收费的呢?
我们先来看一张图。
从上图中,我们可以知道:Oracle 将继续提供JDK 8 免费的公共更新和自动更新,支持个人用户到 2020 年 12 月底,支持商业用户到 2019 年 1 月;换句话说如果想 Oracle 后续继续为你提供 JDK 8 的支持,那么则需要付费。
那么,最新的 JDK 11 又是如何收费的呢?
Oracle 将发布两个不同版本,分别为 Oracle JDK 和 OpenJDK 「除了所附带的许可文件不一样,刚发布的版本几乎完全相同」。
对于 Oracle JDK 来说,支持 BCL 协议,开发人员可以免费使用,但不能用于生产,如果全额付费的话,可支持到 2026 年 9 月。
对于 OpenJDK 来说,支持 GPL 协议「一般只支持到发布的前 6 个月内」,可以用于公司使用,因此,对于JDK 11 来说,应该有JDK 11.0.0,然后是两个安全补丁 11.0.1 和 11.0.2 。如果你要继续使用 Oracle 的 OpenJDK 构建和安全补丁,那么您将必须在发布后的一个月内迁移到 JDK 12,见如下图绿色的部分为免费支持版本。
在此,不得不说 Oracle 太鸡贼了。。。
那问题来了,还有那些可构建 JDK 的产品可供选择呢?
AdoptOpenJDK
官网地址:adoptopenjdk.net
它同样支持 GPL 协议且免费 ,与 Oracle OpenJDK 不同的是,它将在 JDK 11 等主要版本中持续更长的时间。第一次了解它是在 reddit 的一个话题中「见下图」。
最近,AdoptOpenJDK 开发团队表示 JDK 11 版本将在下一个主要版本发布一年后继续使用4年,并且他们将提供持续构建 OpenJDK 的源存储库中创建和发布的安全修补程序。
这里,还需要提一下,AdoptOpenJDK 除了标准的 OpenJDK 构建之外,还可以使用 OpenJ9 进行构建。 OpenJ9 最初是 IBM 的 JVM,但 OpenJ9 现在是 Eclipse的开源。
Red Hat OpenJDK
Red Hat 通过 Red Hat Enterprise Linux「RHEL」提供 OpenJDK 的构建,这是一个付费的商业产品。他们向 OpenJDK 提供非常多的安全补丁,Red Hat 已经运行了 Java 6 和 7 的安全更新项目。Red Hat 构建更好地集成到操作系统中,因此它不是纯粹的 OpenJDK 构建。
IBM
IBM 为 Java 8 及更早版本提供并支持 JDK。他们还使用 OpenJ9 为 AdoptOpenJDK 构建提供商业付费支持。
Azul Zulu
官网地址:zulu.org
这款产品是通过 R 大了解的,它的核心部分就是原汁原味的 OpenJDK ,没有任何额外的改动—— Azul 有时候也会对 OpenJDK 做 bug fix,但这些都是通过提交回到 OpenJDK 去然后再进入到 Zulu Java SE 产品中的。
只有在希望购买 Azul 的技术支持的时候,Zulu 的商业技术支持部分才是收费的;不购买收费的技术支持的话,Azul 也有为 Zulu 提供免费的社区技术支持。
SAP
官网地址:sap.github.io/SapMachine
SAP 根据 GPL+CE 协议为 Jdk 10 及更高版本提供 JDK。他们还有一个商业的闭源 JVM,目前,没有找到任何有关支持它的信息。
这里为各位读者列举了不少可供参考的构建方案,有收费的,有免费的,具体怎么选择,还是看个人吧。
反正,我一直认为免费的反而最贵。。。
如果喜欢我的文字,记得转发或者点赞。
参考
https://www.oracle.com/technetwork/java/javase/eol-135779.html
http://mail.openjdk.java.net/pipermail/jdk-dev/2018-August/001830.html
https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later
https://www.zhihu.com/question/53791269
https://www.reddit.com/r/java/comments/9hd97k/openjdk_vs_adoptopenjdk
https://blog.joda.org/2018/09/time-to-look-beyond-oracles-jdk.html