2019年1月对于Java开发人员和用户都特别重要。原因是Oracle JDK 8发布了更新202,这是Oracle的JDK 8的最终公开更新(针对商业用户)。用户现在需要仔细考虑将来如何更新升级Java版本了。
对于非商业桌面用户,将继续通过现有Java Update机制提供对Oracle Java SE 8的更新。根据Oracle的说法,这将是“ ......至少到2020年底。 ”假设,当第一次更新于4月份发布时,许可证将被更改为禁止在商业中使用这些更新部署。
对于绝大多数Java用户来说,有许多选择可供下一步做什么:
继续使用Oracle JDK 8,但没有进一步的安全补丁或错误修复。这显然在平台稳定性和安全性方面具有重要意义。由于法规遵从性问题要求将所有软件更新到最新版本,因此该选项可能不对许多用户开放。
将应用程序迁移到免费的Oracle OpenJDK JDK。从JDK 9开始,Oracle一直在提供JDK的两个二进制发行版。传统的Oracle JDK(来自java.oracle.com)和较新的OpenJDK二进制文件(来自jdk.java.net)。从JDK 11开始,这些功能相当,但具有不同的许可证。OpenJDK二进制文件在与源代码相同的许可证下提供,即具有类路径异常的GPLv2。Oracle JDK 11二进制文件现在属于Java SE 的Oracle技术网络许可协议。这允许免费用于开发和测试,但需要在商业生产中使用Oracle Java SE订阅。因此,Oracle OpenJDK二进制文件是一个可以在生产中免费使用并且定期更新的选项。此选项的缺点是没有任何这些版本的长期支持(LTS)。上个月发布的Oracle OpenJDK 11.0.2是JDK 11的最新更新。要继续获取最新更新,用户需要每六个月更新一次整个JDK(以跟上新JDK发布节奏的步伐)。
迁移到OpenJDK的免费二进制分发版。有几种选择:
如前所述,有Oracle OpenJDK JDK。
Azul提供免费的Zulu JDK社区版。这适用于各种平台以及版本。
AdoptOpenJDK为各种平台提供免费的JDK发行版(Azul是该项目的赞助商之一)。虽然这些二进制文件经过了很好的测试,但它们目前尚未使用TCK验证为符合Java SE标准。
在考虑使用免费分发时,关键考虑因素应该是如何包含更新。Oracle只会为当前的OpenJDK项目提供更新的源代码(因此,下一次更新将成为OpenJDK 12项目的一部分)。对于要包含在OpenJDK 8二进制文件中的安全补丁和错误修复,必须向后移植更改。在Oracle辞职后,Red Hat最近接任OpenJDK 8的项目负责人。何时以及如果更新后向移植将确定免费二进制文件与当前JDK版本的对齐速度。
值得注意的是,亚马逊已经表示他们的意图是“ 从新版本中有针对性地向后移植”; 他们认为对客户很重要的,即亚马逊网络服务(AWS)的用户。这将导致Corretto与其他免费OpenJDK发行版之间存在一些潜在的分歧。
考虑商业Java支持合同。除Oracle选项外,Azul还提供Zulu Enterprise产品。这是一个完全支持的OpenJDK发行版,具有独立的后向移植修复程序。其中一部分是SLA,其中包括提供包含反向移植更新的二进制文件的速度。如果您在运行Zulu Enterprise时遇到问题,我们会有一个很棒的工程师团队,可以帮助您并在需要时生成修复程序。
Java的下一个预定更新是在四月份,因此您仍需要几个月的时间来考虑您的选择。哪一个