2019 年关于 Java 是否免费, 一直存在误解, 国内新闻断章取义, 搞错概念, 误导开发者. 作为企业的技术领导应该弄清楚关键的概念, 避免被误导.
国内一直谣传 Java2019 年 1 月 1 号收费, 今天都 2 号了, 使用 Java 的企业运转一切正常. 各种新闻标题耸人听闻, 但是如果你也被吓到, 那不妨看看本文调节一下心情.
相信许多 java 开发者也会被这种新闻或者文章困扰, 老外也遇到过, 自 2001 年担任美国加州圣地亚哥 Java UG 主席的 Paul webber 也看过这种文章:
- "在过去的六个月里阅读很多博客, 看不下去, 因为那里有许多关于 Oracle 许可和 JDK 发布周期的错误信息,"
- "本次大会 Mark Reinhold 的演讲, 这是一个可信的消息来源 - 他可能是真相的来源 - 不要被误导."
本文会讲解 Oracle JDK,Open JDK,Oracle 首席架构师声明, Amazon JDK Corretto, 大批公司转 Java, 后期应对策略, 给大家做个参考, 尤其是公司的技术领导.
1,Java 依然免费, 国内新闻断章取义误导大众, 混淆概念
首先搞清楚几个基本概念, 国内很多文章作者是完全没有搞清楚概念的前提下, 乱下结论, 发文章误导开发者.
- Oracle JDK 8 is undergoing the "End of Public Updates" , which means there are no longer free updates for commercial use after January 2019.
- Oracle plans to provide full paid support for Oracle JDK 8 until at least 2025 and Oracle JDK 11 until at least 2026 (details). There is a wide range of paid support options for Java SE / OpenJDK 8 and 11 binaries from Azul, IBM, Red Hat, and others.
声明的意思: Oracle 不在对 JDK8 的商业用途提供免费的公开的更新服务. 看清楚第一行英文, 断章取义的国内文章基本就翻译为 Java 收费...
国内新闻偷换概念的地方在于, 做个类比, RedHat 自己研发的企业版 Linux 收费, 然后新闻标题偷换概念: Linux 收费! 偷换了概念. 误导大家.
当然 Oracle 投入大量资金, 维护 Oracle JDK, 收费无可非议, 但是这些基本概念完全不同, 不要被误导.
关于 Java 的几个概念, 范围要界定一下.
Oracle 收费!=Java 收费, 这是偷换概念.
Oracle JDK 收取技术支持费用!=Java 收费.
Oracle JDK != Java JDK.
Java 的 JDK 版本很多, 包括 Open JDK 和 Oracle JDK.
Open JDK 又存在许多的分支.
Oracle JDK 8 正在进行 "公共更新结束" 流程, 这意味着 2019 年 1 月之后不再有商业用途的免费更新.
Amazon Corretto 是 Java 之父 James Gosling 加盟了亚马逊之后, 今年 11 月 15 号永久开源了自己的 JDK, 其他公司可以免费使用, 无需付费.
当然还有其他的免费的 JDK, 以及对应的支持, 我们下面详细说明一下.
但是, 自 Java SE 9 以来, Oracle 还提供 Oracle 的 OpenJDK 版本, 可免费用于商业用途, 其他公司提供免费的 OpenJDK 版本, 如 Amazon, 谷歌, 阿里巴巴, AdoptOpenJDK,Azul,IBM,Red Hat,Linux distros 等.
Java 规范由 Java Community Process(JCP)委员会管理制定, 并通过 Java 规范 (JSR) 体现. 国内阿里巴巴是唯一的 JCP 委员公司, 参与 Java 规范制定.
2,Oracle 首席 Java 架构师 Mark Reinhold:Java 永远开源, 免费
2018 年 10 月 22 日, Oracle 首席 Java 架构师 Mark Reinhold 在 Oracle Code One 技术大会上演讲表示: Java 仍然是开放和免费的.
Paul Webber , 美国加州圣地亚哥 Java Users Group 主席, 2001 年至今, 说:
- "I stopped reading a lot of blogs in the last six months because there was so much misinformation out there about Oracle licensing and the JDK cycle," said Paul Webber, who has been president of the San Diego Java Users Group since 2001.
- "This was a keynote from a responsible source-he is probably the source of truth-to get rid of the misconceptions. He knows his stuff, so that adds to the credibility of the presentation."
3,Open JDK 永久免费, 包含太多开源, 免费的分支
Open JDK 是最大的开源, 免费 JDK 项目. 官方网站: http://openjdk.java.net/
众所周知, 如果只有 Java 语言是完全没有用的, 企业开发需要许多底层的库, 以及周边的框架, 架构方案. 这样才能完整地开发系统.
需要掌握的一个关键点是, 世界上大多数 JDK 构建都基于开源, 免费的 OpenJDK 项目.
Oracle JDK 只是基于 OpenJDK 代码库的众多分支之一.
虽然过去几年 Oracle 在 JDK 中有额外开发的扩展功能, 但从 Java 11 开始, 情况就不再如此.
使用 Open JDK 扩展的公司很多, 国内著名的阿里巴巴, 严格来说, BAT 都有自己内部维护的 Linux 和 Open JDK 分支, 为了防止可能的版权问题.
许多公司也提供基于 OpenJDK 代码库的构建分支. 这些构建可能具有额外的品牌和 / 或其他非核心功能. 这些公司中的大多数也开源回馈贡献给之前 OpenJDK 项目, 包括安全补丁和更新包.
所以不要被 误导, 绝大部分公司, 都已经做好了准备.
此外, 获得 JDK 有两种主要方式. 第一个是更新机制 buit 到操作系统(例如 Linux RedHat). 第二种自己下载二进制文件安装.
为了进一步研究这一点, 让我们分别看一下 Java 8 和 Java 11.
Java SE / OpenJDK / Oracle 的 OpenJDK 构建 / Oracle JDK
OpenJDK 社区创建并维护 Java SE 规范的(GPLv2 + CE),
来自各种大厂 (例如 Amazon Azul,Eclipse,IBM,Red Hat,Oracle,SAP 等) 的 Java SE 实现, 其中最常见的是 Oracle JDK.
Oracle JDK 8 正在进行 "公共更新结束" 流程, 这意味着 2019 年 1 月之后不再有商业用途的免费更新.
红色字体部分, 也是国内新闻断章取义的关键点.
4, 亚马逊 JDK Corretto 永久免费, 并且长期支持 Java 11
Java 之父 James Gosling 加盟了亚马逊
Amazon Corretto 是 Open Java Development Kit(OpenJDK)的免费, 开源的, 多平台, 生产就绪版本. 基于 GPLv2 开源协议.
源码已经开放 https://github.com/corretto/corretto-8.
Corretto 提供长期支持, 包括性能增强和安全修复. 亚马逊在内部运行 Corretto 数千种生产服务, Corretto 被认证为与 Java SE 标准兼容. 使用 Corretto, 您可以在流行的操作系统上开发和运行 Java 应用程序, 包括 Amazon Linux 2,Windows 和 macOS. 亚马逊 Corretto 8 是预览版, 但是可以用于生产环境.
Amazon Corretto 官方网站 https://aws.amazon.com/cn/corretto/
Amazon Corretto 根据开源许可证 GNU 公共许可证版本 2 的条款获得许可, 具有类路径异常(带有 CPE 的 GPLv2). 亚马逊不对其使用或分发收费.
5,Amazon Corretto 的长期支持包括哪些内容?
Amazon 在 2023 年 6 月之前为 Corretto 8 提供安全更新 ",
至少在 2024 年 8 月之前支持 Corretto 11 进行季度更新 ".
亚马逊计划在 2019 年上半年发布亚马逊 Corretto 11.
Amazon Corretto 8 和 11 的当前更新计划每季度进行一次, 直到截止支持(2023 年 6 月) 对于 Corretto 8 和 824 年 8 月为 Corretto 11).
6, 使用 JDK8 或者 9,10,11 的选择方案?
- https://blog.joda.org/2018/08/java-is-still-available-at-zero-cost.html
- http://openjdk.java.net/
- https://github.com/corretto/corretto-8
- https://www.forbes.com/sites/oracle/2018/10/24/dont-worry-its-still-free-mark-reinhold-dispels-5-myths-about-how-java-is-changing/#dbee87060731
来源: https://yq.aliyun.com/articles/684070