JDK的收费问题
关于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
共同学习,共同进步,若有补充,欢迎指出,谢谢!
JDK的收费问题的更多相关文章
- 今天IT告告诉我,我电脑上的java jdk属性收费滴!需卸载
敲着代码,IT突然跑来说,你电脑的Jdk版本属于收费版,目前需要卸载!啊哦...手贱!每次有更新我都更新了,Java要收费老早之前耳闻了,但是俺很少做java,一般都在.Net,所以忽略鸟.. 于是G ...
- Oracle JDK究竟从哪个版本开始商用收费?
经常被问到Oracle JDK是不是要钱了?收费了?从哪个版本开始商用收费? 木有错,Oracle JDK从2019年4月16号开始商用商用商用收费了!有图有真像: 2019年4月16日当天,Orac ...
- JDK环境部署
JDK环境部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 说起JDK想必大家并不陌生,作为运维的小伙伴,谁不层接触过Java程序员呢?而且在搭建服务上时也必须得接触他,比如to ...
- GitHub标星120K+的JDK并发编程指南,连续霸榜GitHub终于开源了
前言 在编程行业中,有一个东西是和广大程序员形影不离的,在最一开始接触编程就是配置它的运行环境,然后java / javac,对,这个东西就是jdk 昨天项目刚上线,可以稍微休息一下了,但是猛的闲下来 ...
- 腾讯牛逼!终于开源了自家的 Tencent JDK——Kona!!.md
是的,继阿里 2019/03 开源基于 OpenJDK 的长期支持版本 Alibaba Dragonwell 之后,腾讯也发布了自家的开源免费的 JDK 版本--Tencent Kona,必须替小马哥 ...
- Oracle 要慌了!华为终于开源了自家的 Huawei JDK——毕昇 JDK!
没错,自阿里.腾讯之后,华为也终于开源了自家的 JDK--毕昇 JDK! 免费!免费!免费!!! Oracle 要慌了? 毕昇 JDK 毕昇 JDK 是华为内部 OpenJDK 定制版 Huawei ...
- JDK下载地址 Oracle JDK下载 地址 (已解决)
现在JDK开始收费了 Oracle官方对JDK的管理也变得严格了,现在想要在官网下载jdk需要先注册Oracle账号,这倒是小事但是网页反应慢注册填写内容复杂导致很多人不想注册. 不过有的人提供了公开 ...
- Elastic Stack之ElasticSearch分布式集群二进制方式部署
Elastic Stack之ElasticSearch分布式集群二进制方式部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家都知道ELK其实就是Elasticsearc ...
- 对 Kotlin 与 Java 编程语言的思考
从长远来看,排名前10的也基本上是Java.C.C++.Python.C#.VB.PHP.JavaScript.至于Kotlin的排名,11月份在编程语言仅排41名,Ratings仅有0.216%. ...
随机推荐
- docker挂载本地目录的方法总结
docker挂载本地目录的方法总结: Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定. 譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录, ...
- 查看创世区块 Genesis Block和channel.tx文件
将 Block 详细内容导入到 json 文件查看 configtxgen -inspectBlock channel-artifacts/genesis.block > genesis.blo ...
- manjaro 给笔记本安装18.1系统时发现中文变成了方块字
解决方案: 1.连接网络,wifi/本地连接 2.打开终端 3.同步数据 如果是第一次,我们需要先同步本地数据包,先输入 sudo pacman -Syy 4.安装字体 sudo pacman -S ...
- 初识gRPC
一.gRPC的概念 gRPC是Google推出的一个开源高性能的轻量级RPC框架,可以在任何环境中运行.它可以有效地连接数据中心内和跨数据中心的服务,并提供可插拔的支持,以实现负载平衡,跟踪,健康检查 ...
- POJ 3613 Cow Relays【k边最短路】
题目链接:http://poj.org/problem?id=3613 题目大意: 给出n头牛,t条有向边,起点以及终点,限制每头牛放在一个点上,(一个点上可以放多头牛),从起点开始进行接力跑到终点, ...
- kafka consumer 的配置(五)
fetch.min.bytes. #获取最小字节数据 Consumer 向broker中要数据时是按大小来返回的,如果数据没有达到指定的MB,consumer会处于等待状态,直到broker 从pro ...
- GitHub克隆下载代码速度慢解决办法
这几天克隆下载GitHub代码奇慢无比,网上搜索了一下解决方案有些不太完整,自己试验出了比较完整的解决方式: 1.在hosts文件里追加以下内容(IP需要替换掉),以下几个域名一个都不要少,有些文章只 ...
- python — 池
1. 池 池分为:进程池.线程池 池:预先的开启固定个数的进程数/线程数,当任务来临的时候,直接提交给已经开好的进程 / 线程,让这个进程 / 线程去执行就可以了. 池节省了进程.线程的开启.关闭.切 ...
- global和nonlocal的区别
global可以在任何地方修饰变量,而且被global修饰的变量直接被标识为全局变量,对该变量修改会影响全局变量的值,但不影响函数中未被global修饰的同名变量(依然是局部变量),nonlocal只 ...
- Linux(CentOS7)系统中部署Django web框架
1. 概述 部署django和vue架在逻辑上可以分为web层与数据库层:web前端通过实现了WSGI协议的模块对python代码进行解析,而python代码中则通过特定于数据库的操作接口对数据库进行 ...