Java 收费那些事儿
JDK 协议
决定是否收费首先得看JDK使用的是什么协议?
- BCL协议,即Oracle Binary Code License Agreement,协议规定你可以使用JDK,但是不能进行修改。私用和商用都可以,但是JDK中的某些商业特性,是需要付费才可以使用的。
- OTN协议,即Oracle Technology Network License Agreement,目前新发布的JDK用的都是这个协议,可以私用,商用需要付费。
从下图可以看出各个版本对应的协议:
Oracle 更新路线
Oracle 支持 JDK 路线图
图片来源( CodeFX Weekly)
- 绿色的部分为 GPL v2+CPE协议的OpenJDK版本,是完全免费使用的。
- 白色部分为BCL协议,商用是免费的。
- 橘色及网格部分为OTN协议,商用是要收费的 。
结论
- Java 8 使用 8u201/202 及之前的版本是免费的,之后的收费。
- Java 9 是免费的,过渡版本且不再更新不建议使用。
- Java 10 是免费的,过渡版本且不再更新不建议使用。
- Java 11 开始Oracle JDK收费,只能使用免费的Open JDK。
其他内容
- 从2019年4月开始,Oracle JDK 8 更新将具有商业使用限制。
- Java 10.0.2(2018年7月),Java 8u201/202(2019年1月)是 Oracle 发布的最后的免费的Oracle JDK。
- 从 Java 11 开始,每6个月发布一个新的版本,即 11 → 12 → 13 → 14。
- 从 Java 11 开始,每3个月更新一个补丁版本,即 11.0.1 → 11.0.2。
- 从 Java 11(2018年9月,LTS)开始,Oracle将提供基于GPLv2 + CPE协议的 OpenJDK ,Oracle JDK构建和OpenJDK构建将基本相同。
- Oracle计划至少在2025年之前为Oracle JDK 8和至少在2026年之前为Oracle JDK 11提供全额付费支持。
- 免费的JDK有 OpenJDK 、 AdoptOpenJDK 、 Amazon Corretto 、 Azul Zulu 、 BellSoft 、 IBM 、 jClarity 、 Red Hat 、 SAP 、 阿里巴巴 Dragonwell等。
通知案例
Hello开发小伙伴们:
因 Oracle JDK许可变更,在没有商业许可的情况下,在2019年1月之后发布的 Oracle Java SE 8 的公开更新将不可用于商业或生产用途。
经架构委员会、运维部会议讨论,目前 Oracle JDK 8u201 已经满足公司当前开发需求。如后期有更高版本的使用需求,须经架构委员会评估后,另行通知方可使用。
从即日起全公司使用的 Oracle JDK 版本不得高于8u201,请各业务线上技术经理知悉并安排自检,同时通知研发人员不得使用更高版本JDK进行开发,以防新特性无法上线。
参考资料