Java 收费那些事儿

Java Apr 22, 2020 1

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协议,商用是要收费的 。

结论

  1. Java 8 使用 8u201/202 及之前的版本是免费的,之后的收费。
  2. Java 9 是免费的,过渡版本且不再更新不建议使用。
  3. Java 10 是免费的,过渡版本且不再更新不建议使用。
  4. Java 11 开始Oracle JDK收费,只能使用免费的Open JDK。

其他内容

  1. 从2019年4月开始,Oracle JDK 8 更新将具有商业使用限制。
  2. Java 10.0.2(2018年7月),Java 8u201/202(2019年1月)是 Oracle 发布的最后的免费的Oracle JDK。
  3. 从 Java 11 开始,每6个月发布一个新的版本,即 11 → 12 → 13 → 14。
  4. 从 Java 11 开始,每3个月更新一个补丁版本,即 11.0.1 → 11.0.2。
  5. 从 Java 11(2018年9月,LTS)开始,Oracle将提供基于GPLv2 + CPE协议的 OpenJDK ,Oracle JDK构建和OpenJDK构建将基本相同。
  6. Oracle计划至少在2025年之前为Oracle JDK 8和至少在2026年之前为Oracle JDK 11提供全额付费支持。
  7. 免费的JDK有 OpenJDKAdoptOpenJDKAmazon CorrettoAzul ZuluBellSoftIBMjClarityRed HatSAP阿里巴巴 Dragonwell等。

通知案例

Hello开发小伙伴们:
  因 Oracle JDK许可变更,在没有商业许可的情况下,在2019年1月之后发布的 Oracle Java SE 8 的公开更新将不可用于商业或生产用途。
  经架构委员会、运维部会议讨论,目前 Oracle JDK 8u201 已经满足公司当前开发需求。如后期有更高版本的使用需求,须经架构委员会评估后,另行通知方可使用。
  从即日起全公司使用的 Oracle JDK 版本不得高于8u201,请各业务线上技术经理知悉并安排自检,同时通知研发人员不得使用更高版本JDK进行开发,以防新特性无法上线。

参考资料

目录

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.