Java 11 计划于本月,即 9 月 25 日发布。与 Java 10 不同,Java 11 不仅提供了长期支持,还将作为 Java 平台的参考实现。新的长期支持版本每三年发布一次,根据后续的发布计划,Java 17 将于 2021 年发布。

之前,甲骨文已经改进了Java SE(标准版)的商业支持计划,由之前企业一次性支付永久许可费用加年度支持费用的模式,改为新的订阅模式(Java SE Subscription),当然个人使用和非商业使用可继续享受免费支持,无需订阅。

在本文中,我们不妨了解一下 Oracle JDK 之外的 JDK,以及围绕 OpenJDK 构建的生态系统所拥有的深度。本文将为大家介绍一些主流的 OpenJDK 变种版本。

OpenJDK builds

实际上,JDK 只有一组源代码。源代码使用 Mercurial(分布式版本控制系统)托管在 OpenJDK。任何人都可以获取该源码,并通过源码构建一个变种版本发布到网络上。但是需要一个独有的认证程序(Certification Process)来确保构建的变种版本是有效的。

这个认证程序是由 JCP(Java Community Process)组织审核的,后者会提供技术兼容性工具包(TCK,有时也称为 JCK)。如果一个组织构建了一个 OpenJDK 的变种版本,并通过了 TCK 的兼容性测试,则可将构建的这个变种版本称为“Java SE compatible”(兼容 Java SE 的 JDK)。

要注意的是,如果提供者没有从 Oracle 获得商业许可,不能将该构建版本称为“Java SE”。

例如,通过 TCK 兼容性测试的 Adopt Open JDK 不是“Java SE”,而是兼容 Java SE 的 JDK或兼容 Java SE 规范的 JDK。

还要注意,认证程序目前是基于信任基础的 —— 结果不会提交给 JCP/Oracle 用于检查,也不会被公开。详细说明可查看:

  • https://blog.joda.org/2018/09/time-to-look-beyond-oracles-jdk.html?showComment=1536303755275#c5934330550793525320

总的来说,OpenJDK + 变种版本的提供者,将一个源码库转换为许多不同的变种构建版本。

在将 OpenJDK 源码转换为变种版本的过程中,提供者可能会添加一些额外的标记或实用程序,但注意不要影响后面的认证程序。例如,提供者无法为 API 添加一个新的公共方法,或一项新的语言特性。

Oracle JDK


从 Java 11 开始,这是一个提供付费支持的品牌商业版本。当然个人使用和非商业使用仍可继续享受免费支持(Oracle JDK 仍将为开发、测试、原型或展示目的的使用提供免费支持),不需要商业支持或企业管理工具的人可以选择使用 Oracle 的 OpenJDK 构建。Oracle 计划在 2026 年后提供全额付费的服务支持,详情:

  • http://www.oracle.com/technetwork/java/javase/eol-135779.html

要注意的是,与过去不同,Oracle JDK 并不比 OpenJDK “更好”(前提是两者都处于相同的安全补丁级别)。

OpenJDK builds by Oracle


这些是免费的、完全无品牌的 OpenJDK 版本,基于 GPL 开源协议(+Classpath Extension),公司可安全且放心使用。这些版本仅在发布后的六个月内可以使用。

要继续使用由 Oracle 的 OpenJDK 构建版本和安全补丁,需要在发布新版本后的一个月内升级至新版本。

AdoptOpenJDK builds


这些版本也是免费的、完全无品牌的 OpenJDK 版本,基于 GPL 开源协议(+Classpath Extension),以免费软件的形式提供社区版的 OpenJDK 二进制包,公司也可安全且放心使用。

与由 Oracle 的 OpenJDK 构建版本不同,这些版本会提供更长的支持,像 Java 11 一样,至少提供 4 年的免费长期支持(LTS)计划。

Adopt Open JDK 是一个由社区驱动的项目,如果其他群组在 OpenJDK 的源码仓库中创建和发布了安全修复程序,它们也会提供构建。 IBM 和 Red Hat 也曾表示他们打算提供这些安全补丁。

AdoptOpenJDK OpenJ9 builds


除了标准的 OpenJDK 构建外,Adopt Open JDK 还提供了使用 OpenJ9 而非 HotSpot 的版本。OpenJ9 最初是由 IBM 实现的 JVM,现在已开源并交由 Eclipse 运作。

Red Hat OpenJDK builds


Red Hat 通过 Red Hat Enterprise Linux (RHEL) 提供了 OpenJDK 的变种构建版本,这也是提供付费支持的商业版本,详情:

  • https://access.redhat.com/articles/1299013

他们在为 OpenJDK 提供安全补丁方面做得非常好,而且 Red Hat 还为 Java 6 和 7 提供安全更新。Red Hat 构建的版本能更好地集成到操作系统中,所以它称不上是纯粹的 OpenJDK 版本(尽管你也不会注意到差异)。

Other Linux OpenJDK builds


不同的 Linux 发行版拥有不同的方式来访问 OpenJDK。这里是一些常见的发行版:Debian、Fedora、 Arch、 Ubuntu。

Azul Zulu


Zulu 是 OpenJDK 的免费版本,但同时提供商业付费支持。当然不购买收费的技术支持的话,Azul 也有为 Zulu 提供免费的社区技术支持。Azul 有一个广泛的计划以支持 Zulu 商业化,包括支持 Java 9、13 和 15 ,这点与其他的提供者有不同之处,详情:

  • https://www.azul.com/products/azul_support_roadmap/


IBM


IBM 为 Java 8 及更早版本提供并支持 JDK。他们还使用 OpenJ9 为 Adopt Open JDK 构建提供商业付费支持。

SAP


SAP 使用 GPL + CE 许可证为 Java 10 及更高版本提供 JDK。他们还有一个商业的闭源 JVM。不过没有找到任何有关支持生命周期的信息。

总结


现在有很多不同的 OpenJDK 变种版本,它们都基于原始的上游代码仓库。但每个构建版本都提供了独有的选择 —— 免费或商业,品牌或非品牌。可以选择当然很好,但如果你追求的是“标准”,那么目前我最好的建议是使用 Oracle 的 OpenJDK 构建版本、AdoptOpenJDK 构建版本或操作系统(Linux)中内置的版本。

声明:本文经授权转自开源中国,OSC-局长。

Java 11 将至,除了 Oracle JDK 还有这些版本!相关推荐

  1. Java平台,标准版Oracle JDK 9中的新功能

    Java平台,标准版 Oracle JDK 9中的新增功能 版本9 E77563-05 2017年9月 JDK 9中的新功能概述 Java Platform,Standard Edition 9是一个 ...

  2. java 第一弹:最新Oracle JDK 下载安装与配置环境变量

    java 第一弹:最新Oracle JDK 下载安装与配置环境变量 1.下载网站甲骨文官网https://www.oracle.com/java/technologies/javase-downloa ...

  3. Java 11 将至,不妨了解一下 Oracle JDK 之外的版本

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   Java 11 计划于本月,即 9 月 25 日发布.与 Java 10 不同,Java 11 不仅提供了长期支持,还将作为 Java 平台 ...

  4. Java常见面试题:Oracle JDK 和 OpenJDK 的区别?

    Oracle JDK 和 OpenJDK 的区别? 可能在看这个问题之前很多人和我一样并没有接触和使用过 OpenJDK.那么Oracle和OpenJDK之间是否存在重大差异?下面我通过收集到的一些资 ...

  5. java/javaw/javaws与openjdk oracle jdk

    昨天服务器坏了,就用IPMI一个服务管理的一个BS架构的东西尝试去登录后台.然而KVM工作,点开后只看到下载了一个kvm.lp的文件. 通过查资料,.lp跟.jnlp应该是一回事,其实是一个文本文件. ...

  6. 【Java】Linux下安装配置Oracle JDK 1.7版本

    1 环境 Vmware虚拟机中的Ubuntu 12.04 32位系统 2具体安装步骤 ①下载最新的jdk包 注意jdk区分32位版本和64位版本,要与Ubuntu兼容才行 下载地址 http://ww ...

  7. 使用oracle安装jdk1.7,【Java】Linux下安装配置Oracle JDK 1.7版本

    1 环境 Vmware虚拟机中的Ubuntu 12.04 32位系统 2具体安装步骤 ①下载最新的jdk包 注意jdk区分32位版本和64位版本,要与Ubuntu兼容才行 下载地址 http://ww ...

  8. Java 11已经不再完全免费,不要陷入Oracle的Java 11陷阱

    Java 11 已经发布.这是一个主要版本,因为它有长期支持(LTS).但甲骨文也将其设置为陷阱(故意或偶然). 陷阱 23年来,开发人员从Oracle下载了JDK并免费使用它.在您最喜爱的搜索引擎中 ...

  9. Java不免费_Java 11已经不再完全免费,不要陷入Oracle的Java 11陷阱

    Java 11 已经发布.这是一个主要版本,因为它有长期支持(LTS).但甲骨文也将其设置为陷阱(故意或偶然). 陷阱 23年来,开发人员从 Oracle 下载了JDK并免费使用它.在您最喜爱的搜索引 ...

最新文章

  1. Druid数据库连接池超时问题com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10
  2. 一个虚函数和虚继承的问题。
  3. 《学习opencv》笔记——基本数据结构,CvMat,矩阵訪问
  4. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 3丨行程和用户【难度困难】
  5. thymeleaf(th:each th:selected) 从后台动态获取下拉框数据回显及选中
  6. 数论 —— 整数分解
  7. Anaconda安装找不到的依赖包,以DBUtils包为例
  8. 归并排序,我举个例子你就看懂了
  9. suse11 mysql 5.7_SUSE Linux系统中单实例二进制方式安装MySQL 5.7.22
  10. 数据安全治理白皮书_天融信联合发布《自动驾驶数据安全白皮书》
  11. Windows的文件目录管理策略
  12. md5算法不可逆,为啥网上很多网站声称可以解密md5
  13. 什么是SLA?SLA服务水平深度解析
  14. css两张图片重叠显示
  15. CVPR 2022 Oral|港中文开源PoseC3D:基于3D-CNN的骨骼动作识别框架
  16. c++中的sort函数
  17. Vue3-pinia(状态管理)
  18. 奇虎360退出美国股市 12月再曝拟私有化
  19. 华为AnyOffice eSDK建立TCP端口转发隧道
  20. win10系统盘多大合适_韩博士装机大师一键重装win10系统

热门文章

  1. 剑指Offer之左旋字符串
  2. 中国农业机械用橡胶履带行业市场供需与战略研究报告
  3. 金属粉末增材制造行业调研报告 - 市场现状分析与发展前景预测
  4. iphone7计算机隐藏,Iphone7:3Dtouch5个隐藏小功能,你知道吗?
  5. 美团员工被指用钓鱼邮件获拼多多薪资;华为回应暂无其它手机厂商接入HarmonyOS;GCC 放弃版权转让政策|极客头条...
  6. 开源 = 打破商业垄断?
  7. 像人类一样理解言外之意,阿里AI最新研究成果被国际顶会收录
  8. 挑战王者荣耀“绝悟” AI,会进化的职业选手太恐怖了!
  9. 比尔·盖茨退出微软董事会,回顾盖茨与微软的传奇故事
  10. JavaScript 造就年薪超过 10 万美元的开发者们!