今年4月16日,Oracle发布了新的JDK 8的更新,版本号为8u211和8u212。与以往不同的是,新版本的许可协议从BCL换成了OTN,这就意味着,你不能在生产环境使用这个版本了。如果你想继续使用8u211/8u212,或者之后发布的新版本,就需要给Oracle交钱了。

当然,并不是你用了新版本的JDK就要交钱,这个时候要区分私用和商用:

私用,是我总结的一个词,它包括”Personal Use”和”Development Use”,前者表示一些个人用途,比方说在自己的电脑上写一些小工具,做一些数据分析等等;后者表示开发用途,比如日常开发、做测试、做演示等等。商用不太好界定。我的理解就是拿来赚钱就是商用,比方说把网站部署到生产环境,在公司内部系统使用等。

我用的JDK使用什么协议?

BCL协议,即Oracle Binary Code License Agreement,协议规定你可以使用JDK,但是不能进行修改。私用和商用都可以,但是JDK中的某些商业特性,是需要付费才可以使用的。OTN协议,即Oracle Technology Network License Agreement,目前新发布的JDK用的都是这个协议,可以私用,商用需要付费。从下图可以看出各个版本对应的协议:

我不想掏钱怎么办?

商用的话使用上面BCL协议的版本,私用怎么着都行。很多时候,开发者会对什么版本用了什么协议比较迷惑,懒得搞清楚,那么可以直接使用OpenJDK。

OpenJDK是一个基于GPLv2+CE协议的开源JDK实现,他由OpenJDK社区来运作,作为OpenJDK社区的主导者,Oracle也在尽量减少OpenJDK和Oracle JDK的差别(source),将一些商业特性移植到了OpenJDK上,比如Java Flight Recorder,Java Mission Control和ZGC等等。对于普通开发者,两者差异可忽略不计。OpenJDK同样会每6个月发布一个新版本,不过每次新的版本发布后,旧的就不维护了,比如OpenJDK 12发布之后,11版本便停止更新,停留在11.0.2版本,没有LTS一说了。

除了Oracle的OpenJDK,还有很多免费OpenJDK实现可以用,比如 Zulu,AdoptOpenJDK,Amazon的Corretto和阿里巴巴的dragonwell等等。具体他们有什么区别,我们以后再说。

我们大厂愿意掏钱怎么办?

可以通过订阅Java SE Subscription来付费,桌面用途每人每月2.5刀,服务器用途每个处理器每月25刀,量多还有优惠。Oracle以前还提供Java SE Advanced, Java SE Advanced Desktop和 Java SE Suite等一次性授权,不过现在都建议新老付费用户换成订阅制了。

Oracle为什么这么做

当然是赚钱,OTN协议的Oracle JDK现在允许私用也只是想让开发者养成习惯,将来开发者搞公司项目的时候,非常有可能会习惯性去Oracle官网下载JDK,这样就导导致了商用项目未经许可违规使用。Oracle法务部的刀肯定老早就磨好了。

参考资料:

  • BCL许可协议内容
  • OTN许可协议内容
  • GPLv2+CE协议内容
  • Oracle官方关于许可协议的FAQ
  • Oracle官方关于Java SE Subscription的FAQ
  • Java SE Subscription价格表
  • Oracle的Java SE技术支持路线图
  • Java is Still Free 2.0.3-社区大佬们对于Java免费与否的解释

作者:闷瓜蛋子
链接:https://juejin.im/post/5ccce2006fb9a032143770e4
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Oracle如何对JDK收费相关推荐

  1. Oracle要对Java收费了,SAP基于Java技术栈的那些产品的客户怎么办

    今年年初的时候,所谓"Oracle要对Java收费"的新闻,在网上传得沸沸扬扬.这个新闻被专业人士视为标题党,而国内众多技术论坛,比如知乎社区上,有很多大神对"Java收 ...

  2. Java 17 正式发布,Oracle推出免费JDK许可证,Spring 6 以 Java17为基准

    一个小时前,JAVA 17 正式发布,这是一个LTS(长期支持)版本,带来了不少有用的新特性.关于Java 17 的一些新特性,胖哥已经在往期的文章中进行了介绍,这里就不再赘述了,有兴趣的可以移步文章 ...

  3. Oracle数据库管理›oracle内部的jdk版本

    相看他的自定义版本还是想看兼容SUN的那个版本? 如果是前者,那查询视图:dba_registry, 要是后者就不用查了,ORACLE已经说得很清楚了: oracle8i JVM 兼容 jdk1.2 ...

  4. Oracle账号分享[JDK下载使用]

    Oracle账号分享[JDK下载使用] 前言 开发过程中需要使用java环境时需要下载jdk,但是需要Oracle账号才可以下载,所以分享一个账号供大家下载使用,切记勿修改密码及违规使用,且用且珍惜. ...

  5. oracle配置jdk版本号,升级oracle中的JDK版本

    Oracle自8i起就全面支持java,但各个版本的oracle中默认jdk版本均不相同,oracle8i中为jdk1.2,oracle9i中为jdk1.3,oracle10g中为jdk1.4~~至笔 ...

  6. 2023年JDK收费临时解决方案

    从2023年的1月23日起,javaSE突然大幅涨价,订阅Java SE不再按用户数量收费,而是改为按公司员工人数收费. 以下是知乎相关的文章 https://zhuanlan.zhihu.com/p ...

  7. oracle数据库如何授权收费吗,如何减少Oracle数据库的License和支持费用

    大家知道,Oracle的数据库License和支持费用是很贵的,但是,Oracle又是很多企业关键业务的首选,不得不用.今天,我们就简单聊一下,从服务器和存储的角度,特别是从存储的角度,如何帮助大家减 ...

  8. Android Studio 自带的 jre 和甲骨文(Oracle)的 JDK

    Android Studio安装后自带jre,这个自带jre的版本号肯定比最新的版本号要小. 但是如果项目中没有用到新版本jdk的特性功能,那么可以直接使用Android studio自带的jre,不 ...

  9. oracle数据库如何授权收费吗,Oracle数据库如何授权收费

    在线QQ客服:1922638 专业的SQL Server.MySQL数据库同步软件 展开所有 1,首先以管理员身份来连接到数据库,输入sqlplus,然后输入管理员用户名(系统)和密码以成功连接. 2 ...

  10. Java JDK 1.8 下载及其版本说明 8u202(最后一个免费版)

    我们可以从Oracle官网下载我们想要的JDK版本 打开官网下载地址: https://www.oracle.com/technetwork/java/javase/downloads/index.h ...

最新文章

  1. 谷歌出现新冠肺炎确诊病例,限制员工出行;比尔·盖茨:可能成百年不遇的大流行病...
  2. C++ string类中的find()函数的简单使用
  3. 请详细描述listview与gridview的异同点_三种聚类分析的异同
  4. CRT中的时间(time_t和tm)
  5. boost::contract模块实现loop的测试程序
  6. android 解决小米手机上选择照片路径为null的问题
  7. 一个静态库框架模板: iOS Universal Framework Mk 7
  8. java dubbo jsf_cubelink
  9. 广播信道的数据链路层和CSMA/CD协议
  10. 冯诺依曼结构和哈佛结构01
  11. Appnium学习日记一(下载安装Appnium)
  12. hua图软件 mac_sai mac中文版|sai绘画软件 For Mac下载 v3.0 官方版 - 121苹果网
  13. 写入img虚拟软盘镜像_codestorm_新浪博客
  14. 1.7 COMS边沿触发器
  15. C#使用 MailKit获取邮件中的附件(QQ邮箱/163网易邮箱)
  16. 手撸Spring系列10:Spring AOP(实战篇)
  17. BART model
  18. 解决NativeCat能连接的上,但是IDEA连接不上
  19. 6G:典型应用、关键技术与面临挑战
  20. ThundeRex中美专递

热门文章

  1. Mysql5.7下载安装步骤详解
  2. python如何编辑pdf_用Python实现一款永久免费的PDF编辑工具
  3. 机器学习-kmeans(k均值聚类算法)
  4. IPC(进程间通信) | 信号量机制
  5. mfc 控件显示 被遮挡_MFC控件显示和隐藏的问题
  6. 单行、多行文本溢出省略号
  7. csgo/5e机器码解封方法,永久性解除,重装系统都不掉
  8. 1寸、小2寸、2寸证件照片是多大尺寸?
  9. Excel数据分析—柱状图
  10. 结构体中的LNode与*LinkList