最近有人担心 Java开发人员现在会无意中使用错误的Oracle提供的JDK实现(从JDK 11开始 ), Oracle提供了开放源代码OpenJDK的构建 ,并且还提供了主要基于OpenJDK源代码的商业JDK构建。
下表比较并对比了Oracle提供的两个JDK版本(但是Oracle不会是唯一免费提供和/或收取支持费用的JDK构建的供应商)。 请记住,这代表了我对Oracle两种产品的异同的最佳个人理解。 在决定要使用哪个Oracle JDK实现(甚至是否使用Oracle实现)之前,请与权威人士联系。
Oracle的JDK构建( https://jdk.java.net/ ) | ||
---|---|---|
特性 | Oracle OpenJDK构建 | Oracle JDK(Java SE下载) |
Oracle的描述 | “ 最终用户和开发人员正在寻找免费的JDK版本 :根据GPL许可, Oracle OpenJDK提供与Oracle JDK相同的功能和性能。” | “ 针对Oracle LTS版本的Oracle客户和ISV :Oracle JDK是Oracle支持的Java SE版本,用于客户以及开发,测试,原型化或演示Java应用程序。” |
网址 | https://jdk.java.net/11/ | https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html |
执照 | GNU通用公共许可证,版本2,带有类路径异常 | Oracle Java SE的Oracle技术网许可协议 |
构建平台 (二进制) | Linux / x64( tar.gz ) macOS / x64( tar.gz ) Windows / x64( zip ) | Linux / x64( tar.gz , deb , rpm ) macOS / x64( tar.gz , dmg ) Windows / x64( zip , exe ) Solaris SPARC( tar.gz ) |
支付生产使用费 | 没有 | 是 |
Oracle支持 | 选择错误修复和安全补丁,直到下一个JDK版本的General Availability版本发布为止 | Java SE订阅 (支持LTS版本长达8年) |
“ Oracle客户 ” 下的其他几种付费支持产品 | ||
java -version 示例 | openjdk version "11" 2018-09-25 | java version "11" 2018-09-25 |
需要接受许可协议 | 没有 | 是 |
Java飞行记录器 | 是 | 是 |
Java任务控制 | 是 | 是 |
高级管理控制台 | 没有 | 是 |
该表仅代表我个人的理解; 有关更多权威信息,请参考Oracle文档和OpenJDK文档(请参见下面的“参考”)。 |
JDK的其他实现也将可用,其中有些是免费的,有些需要付费。 为了使“ Oracle OpenJDK构建”和“ Oracle JDK构建”之间的比较更加简洁明了,本文中我没有讨论这些替代提供的JDK。
参考文献
- Oracle Java SE支持路线图
- 适用于Java 11及更高版本的Oracle JDK版本
- Java SE产品
- Java SE Release Cadence的更新和常见问题解答
- OpenJDK商标声明 (Oracle拥有商标)
翻译自: https://www.javacodegeeks.com/2018/10/tale-two-oracle-jdks.html