关于JDK是否收费,我也有过疑问,查了一些资料,就在这里做一个简要的说明。

  首先要明白JDK的发布模型。两年多以前,2017年9月21日,伴随着JDK9的发布,JDK就开启了新的发布模式(如下图所示)。JDK分为OracleJDK、OpenJDK。

OpenJDK

  OpenJDK的lience是GPLv2+CPE,可以免费使用。从JDK9开始,OpenJDK每6个月发布一次,也就是每年的3月份、9月份各发布一次,称为feature release。JDK9就是在2017年9月份过GA的。

  除了feature release之外,OpenJDK每个季度会提供一个update release。分别在1月份、4月份、7月份和10月份。所以每个feature release之后,都会有两个update release。

  再说一次,OpenJDK可以免费使用。

OracleJDK

  使用OracleJDK需要commercial license,这个不是免费的。OracleJDK每3年发布一次LTS(Long Term Support)版本,Support的期限是8年。2018年9月发布的JDK11是第一个LTS版本,support到2026年9月。同样,OracleJDK每年也有4个update release。

  因为OracleJDK每3年发布一次LTS版本,所以下一次LTS将在2021年9月份发布。

OpenJDK与OracleJDK的区别

之前有一些commercial features没有包含在OpenJDK中,例如:

  Java Flight Recorder: http://openjdk.java.net/jeps/328

  Java Mission Control: http://openjdk.java.net/projects/jmc/

  Application Class-Data Sharing: http://openjdk.java.net/jeps/310

  ZGC: http://openjdk.java.net/jeps/333

但是现在这些commercial features已经贡献给了OpenJDK社区,所以从JDK11开始,OpenJDK与OracleJDK基本完全一样。但是它们之间仍然有一些差异,具体查看下面的文章:

https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later

JDK11收费吗?

OpenJDK是免费的。对于想要不断体验新特性的developer来说,是理想的选择。

OracleJDK不是免费的。对于企业用户来说,可能不是太愿意频繁升级,那么就选择OracleJDK。

OracleJDK 收费是针对 公司、商业用途的,如果只是个人学习Java的话,这些是没什么影响!

另外,Oracle 曾在今年四月就宣布,自 2019 年 1 月起,Java SE 8 公开更新将不向没有商用许可证的业务、商用或生产用途提供。

但我们细读这句话,就会懂得 收费的并不是JDK8 , 而是JDK8后续的update (更新) 。

什么是update? 如果你下载过JDK, 就会看到那些8u191, 8u192这样的东西,191,192就是update 的编号。

这些update中通常会包含对JDK bug的fix ,或者一些功能的改变,增强, 拿update 172为例:

  1. 这个update 修改了下面两个方法的文档,让文档描述和方法的实现一致:

     java.awt.Toolkit.getImage(URL u)

     java.awt.Toolkit.createimage(URL u)

  2. 增加了在Windows8 及以上版中,对Swing/AWT 文本组件自动显示触摸键盘的功能

  3. 36个Bug Fix

假设JDK 8u192是2018年的最后一个update , 你下载并且安装了,那可以继续免费使用下去,没有任何问题。

但是从2019年1月开始,如果你还想获取JDK的update , 对不起,你需要付费订阅。

这个订阅服务的价格是这样的:

  对于PC, 每用户每月是2.5美元,对于服务器/云部署,每个processor 每月是25美元, 当然,数量多的话可以打折。

References

  https://www.oracle.com/technetwork/java/javase/eol-135779.html

  https://www.oracle.com/technetwork/java/javase/downloads/index.html

  https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later

  https://www.infoq.com/news/2017/09/Java6Month

  2019年1月起Oracle要对JDK8就要收费了!

共同学习,共同进步,若有补充,欢迎指出,谢谢!

JDK的收费问题的更多相关文章

  1. 今天IT告告诉我,我电脑上的java jdk属性收费滴!需卸载

    敲着代码,IT突然跑来说,你电脑的Jdk版本属于收费版,目前需要卸载!啊哦...手贱!每次有更新我都更新了,Java要收费老早之前耳闻了,但是俺很少做java,一般都在.Net,所以忽略鸟.. 于是G ...

  2. Oracle JDK究竟从哪个版本开始商用收费?

    经常被问到Oracle JDK是不是要钱了?收费了?从哪个版本开始商用收费? 木有错,Oracle JDK从2019年4月16号开始商用商用商用收费了!有图有真像: 2019年4月16日当天,Orac ...

  3. JDK环境部署

    JDK环境部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 说起JDK想必大家并不陌生,作为运维的小伙伴,谁不层接触过Java程序员呢?而且在搭建服务上时也必须得接触他,比如to ...

  4. GitHub标星120K+的JDK并发编程指南,连续霸榜GitHub终于开源了

    前言 在编程行业中,有一个东西是和广大程序员形影不离的,在最一开始接触编程就是配置它的运行环境,然后java / javac,对,这个东西就是jdk 昨天项目刚上线,可以稍微休息一下了,但是猛的闲下来 ...

  5. 腾讯牛逼!终于开源了自家的 Tencent JDK——Kona!!.md

    是的,继阿里 2019/03 开源基于 OpenJDK 的长期支持版本 Alibaba Dragonwell 之后,腾讯也发布了自家的开源免费的 JDK 版本--Tencent Kona,必须替小马哥 ...

  6. Oracle 要慌了!华为终于开源了自家的 Huawei JDK——毕昇 JDK!

    没错,自阿里.腾讯之后,华为也终于开源了自家的 JDK--毕昇 JDK! 免费!免费!免费!!! Oracle 要慌了? 毕昇 JDK 毕昇 JDK 是华为内部 OpenJDK 定制版 Huawei ...

  7. JDK下载地址 Oracle JDK下载 地址 (已解决)

    现在JDK开始收费了 Oracle官方对JDK的管理也变得严格了,现在想要在官网下载jdk需要先注册Oracle账号,这倒是小事但是网页反应慢注册填写内容复杂导致很多人不想注册. 不过有的人提供了公开 ...

  8. Elastic Stack之ElasticSearch分布式集群二进制方式部署

    Elastic Stack之ElasticSearch分布式集群二进制方式部署 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家都知道ELK其实就是Elasticsearc ...

  9. 对 Kotlin 与 Java 编程语言的思考

    从长远来看,排名前10的也基本上是Java.C.C++.Python.C#.VB.PHP.JavaScript.至于Kotlin的排名,11月份在编程语言仅排41名,Ratings仅有0.216%. ...

随机推荐

  1. C++结构体基础知识

    结构体 一.什么是结构体 假设我们要存储有关篮球运动员的信息,则可能存储Ta的姓名.工资.身高.体重.平均得分等,希望有一种数据格式可以将这些信息存放在一个单元中. 因此引入了结构的概念 结构是用户定 ...

  2. 关于HTTP返回码

    301与302区别: 301 重定向 三种主流搜索引擎(Google, Bing, Yahoo)对待301都是一样的.它们忽略原始链接然后把重定向后的新链接加入索引.例如:如果用301把 http:/ ...

  3. Scrapy payload 报错400

    首先Scrapy 发送payload请求格式如下: def start_requests(self): querystr = { "ctoken": "U-ang1zmp ...

  4. Kubernetes---启动及退出动作

    apiVersion: v1 kind: Pod metadata: name: lifecycle-demo spec: containers: - name:lifecycle-demo-cont ...

  5. 连续取数字DP使值最大HDU2697

    题意: 有n个数,每个数都有价钱,连续的取可以获得len*len的利益,使利益最大. 思路: 三维DP,1.2.3维分别是第i个,剩余多少钱,从后往前连续的有几个. #define IOS ios_b ...

  6. WPF DataGrid控件中某一列根据另一个文本列的值显示相应的模板控件

    之前做项目的时候需要实现这样一个功能.WPF DataGrid有两列,一列为"更新状态”列,一列为"值"列,如果"更新状态"列的值为“固定值更新”,则 ...

  7. Disruptor 并发框架

    什么是Disruptor Martin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易.这个系统是建立在JVM平 ...

  8. SqlServer学习之触发器

    什么是触发器? 根据百度百科的解释,触发器是SqlServer提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,他的执行不是有程序调用,也不是手工启动,而是由事件来 ...

  9. ThreadPoolExecutor的runState和workCount变量怎么存储?

    在阅读Java线程池ThreadPoolExecutor源码的时候,发现它很巧妙地把线程池状态runState和线程数workCount两个变量存放在了一个int型变量里面. 我们先看一个数值,如下是 ...

  10. 验证组件FluentValidation的使用示例

    官方文档:https://fluentvalidation.net/start#complex-properties 示例Demo:https://github.com/DavideYang125/F ...