Java8及新版本许可证及收费?

2018-10-29  本文已影响1351人  胡昜

问题:许可类型及如何收费?

JDK 8
Oracle 将继续提供JDK 8 免费的公共更新和自动更新,支持个人用户到 2020 年 12 月底,支持商业用户到 2019 年 1 月;换句话说如果想 Oracle 后续继续为你提供 JDK 8 的支持,那么则需要付费。Oracle目前只提供了部分平台的JDK 8的openJDK构建,多数平台只有第三方的openjdk可以用。

按照 Oracle 公布的支持路线图

java支持路线图
如上图绿色的部分为免费支持的openJDK版本。棕红色部分为Oracke JDK Java SE Advanced, 该系列的产品是收费的,只有在「通用计算」使用范围内是完全免费的。显然通用计算不包括商业使用。

对于最新的java 11
Oracle JDK:支持 BCL 协议,开发人员可以免费使用,但不能用于生产,生产需要商业许可,如果全额付费的话,可支持到 2026 年 9 月。
OpenJDK:支持 GPL V2+CPE协议「一般只支持到发布以后的 6 个月」,可以用于公司使用,因此,对于JDK 11 来说,应该有JDK 11.0.0,然后是两个安全补丁 11.0.1 和 11.0.2 。如果你要继续使用 Oracle 的 OpenJDK 最新构建和安全补丁,那么您将必须在发布后的一个月内迁移到 JDK 12。参见这里:oracle openjdk

GPL v2+CPE:官方Blog:java 11及以后发布许可证解释,按照解释,java 11以后,openjdk和oracle jdk本质上来说是完全一致的,只不过需要付费许可证的高级特性在openjdk中是不可用的,现在如果用了,在编译时会报错。这一点很重要,也就是说,除去高级特性的部分,openJDK和oracle JDK是可以互换的。

对于java 9和10,属于过渡版本,oracle官方也只是提供了6个月的支持期,所以可以不用考虑。

那我们怎么办?

对于需要部署jdk运行环境的企业,将不可避免的面临以下选择:

java 8:

java 11

对于纯粹的产品开发商,大多数的java产品发布时并不需要打包jdk在内,因此对于产品开发时的策略,并不太需要考虑许可协议的限制。只需要确保最终产品部署时不要依赖需要付费的高级特性或者某个特定版本,只使用openjdk兼容的部分即可。最终部署时的jdk,则完全取决于使用产品的客户的具体策略。对于大多数客户来说,免费够用应该是最佳选择。

可用的三方OpenJDK

参考:
https://www.oracle.com/technetwork/java/javase/eol-135779.html
https://yq.aliyun.com/articles/645952

上一篇 下一篇

猜你喜欢

热点阅读