从明年1月开始,Oracle要对JDK8就要收费了,怎么办?
Posted 码农翻身
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从明年1月开始,Oracle要对JDK8就要收费了,怎么办?相关的知识,希望对你有一定的参考价值。
JDK8从2019年1月开始就要收费了,怎么办呢?
其实这个问题本身就是有问题的,因为收费的并不是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美元, 当然,数量多的话可以打折。
Oracle 为什么要这么干呢?
我推测有两个原因, 第一个原因可以理解: Oracle JDK8 2014年3月发布, 到2019年1月正式进入“End of Public Updates”, 这个版本Oracle支持了将近5年时间,一个版本的软件不可能无限期地支持下去,那样维护成本太高。
第二个原因可能是没有多少人购买它的Java SE Advanced, Java SE Advanced Desktop 或者Java SE Suite, 这三个家伙是什么东西? 我们稍后解释。
你也许注意到了, 我刚才再说JDK的时候,特别加上了Oracle 这个词,这是因为Java虚拟机的规范是开放的,任何人都可以去实现。
老刘在2017年编程提高群第一季中,不就和大家一起实现了一个极为简单的版本吗? 当然那不能称为JVM ,只实现了对Class文件的解析,和一个能实现顺序,分支,循环,多态的简单执行引擎。
其实现在的JDK提供者非常多,不像微软的.NET,独此一家,别无分号。
Open JDK
这个不多说,免费的开源实现,以GPL License发布,很多Linux发行版中都会包含这个Open JDK 。
参与开发的大佬们有Oracle, RedHat (已被IBM收购), Azul System, IBM , Apple , SAP。
Oracle JDK
就是我们常说的Java JDK , 也是最常用的一个,是Oracle公司(收购了开发Java的Sun公司)对Java SE的实现。
如果更详细分的话,可以分为Oracle JDK和 Oracle JRE。
比如你想玩Minecraft 这样需要Java的游戏, 那只需要从java.com下载一个JRE就够了。
如果你想基于Java做开发,那就需要从Oracle Technology Network(OTN)网站上下载JDK了。
其他公司提供的JDK
有实力的大公司,都有可能开发自己的JDK , 比如IBM ,肯定要为自家的操作系统AIX,还有z/OS开发SDK。
我在IBM工作的时候,根本就没有用过Oracle JDK,公司也不让用啊。
HP,SAP也有自己的JDK , 可以为自己的硬件和软件做定制。
Oracle Java SE Advanced, Java SE Advanced Desktop, Java SE Suite
这名字老长了,也有点费解,简单来说,这是个收费的服务, 是Oracle 为企业级用户提供的高级工具和功能,可以监控、部署、管理企业级的Java程序,与此同时,你还可以下载那些老版本的JDK及其update。
换句话说,如果你购买了这个服务,自然就不用担心什么JDK update 收费的问题。
但是问题在于,到底有多少公司再使用这个服务? 如果你的公司在使用,欢迎告知。
所以我猜测Oracle耍了一点小手段, 以后不要这个收费的服务了,把这些高级的功能加上JDK update 打包,统一成一个新的服务,就是之前说的订阅服务。
总结一下
如果你的公司已经买了这个Java SE Advanced (或者 Advanced Desktop), Java SE Suite的License, 什么都不用担心,你很安全。
如果你的公司正在使用Oracle JDK 8 并且还想在2019年1月之后获得那些更新和支持,你需要购买Orace 的订阅服务。
如果你的公司一直在在升级你的Oracle JDK ,比如说已经升级到JDK9了,你什么服务都不用购买, 因为那个订阅服务主要解决的是老版本的Update 的问题。
或者可以选择一个没有public update的Oracle JDK , 这也很常见,很多JDK已经非常稳定了, 比如Oracle JDK 7 发布日期是2011年7月, “End of Public Updates” 是2015年4月, 我估计现在还有不少公司还在使用JDK7这个已经没有public update的版本吧!
如果真的出现了巨大的安全漏洞,你又没法升级JDK ,那只好去购买订阅服务去Fix了。
当然,你的公司也可以选择纯开源OpenJDK。
注意,我这里说的都是公司,都是商业用途,如果只是个人学习Java的话,没什么影响!
后记: 这篇文章是我从网络上查阅资料,综合分析后写的,如果有不正确的地方,欢迎批评指正。
参考资料:
https://www.oracle.com/technetwork/java/javase/terms/products/index.html
https://www.oracle.com/technetwork/cn/java/javase/overview/index.html
https://blogs.oracle.com/java-platform-group/java-se-offerings
https://www.aspera.com/en/blog/oracle-java-se-8-licensing-updates/
https://blogs.oracle.com/java-platform-group/end-of-public-updates-is-a-process%2c-not-an-event
以上是关于从明年1月开始,Oracle要对JDK8就要收费了,怎么办?的主要内容,如果未能解决你的问题,请参考以下文章
JDK16的新功能预案出来了,网友:别逼我了!JDK8我都还没玩转~