Oracle JDK 收费后我们如何选择?

Oracle公司于2019 年 4 月 16 起的发行版更改了 Oracle Java 许可,由免费的Binary Code License (“BCL”)修改为商用收费Java SE OTN License,新许可允许个人和开发免费使用,而企业用户或进行具有商业用途(盈利目的)的应用或工具的开发时是要收费的,即如果要继续使用 2019 年 4 月以后发布的 Java 8 更新(JDK 8u211)及以上版本,需要付费购买 Oracle 的商业许可证。

为规避相应风险,这时我们该选择使用JDK哪个版本呢?

1. 付费用户

自然是使用Oracle自己的JDK,以便及时获取功能及安全更新;

2. 免费使用Java 8用户

Java 8 JDK 最后免费的是8u201(CPUs)和8u202(PSUs)两个版本,其实他们可以说都是拥有不同版本号的最后一个免费版本。两者的区别在于 CPUs 往往包含安全漏洞修复和重要漏洞修复,是需要所有用户都及时升级更新的,版本号采用奇数编号。

PSUs 包含相应 CPUs 中的所有修复以及其他非重要修复,仅当您受到Oracle JDK关键补丁更新 (CPUs)版本之外的其他漏洞的影响时才应当使用相应的补丁集更新 (PSUs) ,版本号采用偶数编号。

官网 Java 8 JDK 免费版本下载地址:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html

3. 免费且想用Java最新特性用户

如果你需要使用最新的 Java 特性,Oracle 和一些厂商在 GPL 许可下提供了 OpenJDK 的下载包,可用于商业和生产用途。最新版的 OpenJDK 一般都会紧跟对应版本的 Oracle JDK。由于授权问题 OPENJDK 缺少 Oracle JDK 部分功能,造成两者不能完全兼容。

国外免费 OpenJDK:
AdoptOpenJDK: https://adoptopenjdk.net 是由OpenJDK预构建的开源免费的二进制文件。
Microsoft Build OpenJDK:https://www.microsoft.com/openjdk 是Microsoft提供的免费长期支持发行版,兼容macOS,Linux和Windows。
Amazon Corretto是:OpenJDK的免费、多平台和生产级别的发行版,兼容macOS,Linux和Windows。

国内免费 OpenJDK:
阿里巴巴Dragonwell:http://dragonwell-jdk.io/ 是阿里巴巴内部的OpenJDK实现。它针对运行在100,000台以上服务器上的在线电子商务,金融和物流应用程序进行了优化,以极高的规模运行这些分布式Java应用程序的引擎。
腾讯开源Tencent JDK - Kona:https://cloud.tencent.com/product/tkjdk
华为开源JDK - Kona:https://mirrors.huaweicloud.com/kunpeng/archive/compiler/bisheng_jdk/

如果没有环境(例如Linux)和/或许可证要求定义了特定的发行版,并且您想要最标准的JDK构建,则最好的选择可能是使用Oracle的OpenJDK或AdoptOpenJDK。

云服务客户选择云服务商自身提供的JDK,阿里、微软,亚马逊等提供的开源JDK;

如果不信任任何现有供应商,可以根据需求自己构建OpenJDK。参见https://jdk.java.net/

上一篇:如何判断我安装的Java版本?


下一篇:安装Chrome Java插件