JDK 8 从 2019 年 1 月开始就要收费了,怎么办呢?
其实这个问题本身就是有问题的,因为收费的并不是 JDK 8 , 而是 JDK 8 后续的 Update (更新) 。
什么是 Update? 如果你下载过 JDK, 就会看到那些 8u191、8u192 这样的版本,191、192 就是 Update 的编号。
这些 Update 中通常会包含对 JDK Bug 的修复,或者一些功能的改变、增强,这里用 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 JDK 8 2014 年 3 月发布,到 2019 年 1 月正式进入“End of Public Updates”,这个版本 Oracle 支持了将近 5 年时间,一个版本的软件不可能无限期地支持下去,那样维护成本太高。
第二个原因可能是没有多少人购买它的 Java SE Advanced、Java SE Advanced Desktop 或者 Java SE Suite,或许很多人并不能理解这三个是什么?我们稍后解释。
你也许注意到了, 我刚才再说 JDK 的时候,特别加上了 Oracle 这个词,这是因为 Java 虚拟机的规范是开放的,任何人都可以去实现。
所以现在的 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 ,比如说已经升级到 JDK 9 了,你什么服务都不用购买, 因为那个订阅服务主要解决的是老版本的Update 的问题。
或者可以选择一个没有 public update 的 Oracle JDK , 这也很常见,很多 JDK 已经非常稳定了,比如 Oracle JDK 7 发布日期是 2011 年 7 月,“End of Public Updates” 是 2015 年 4 月,我估计现在还有不少公司还在使用 JDK 7 这个已经没有 public update 的版本吧!
如果真的出现了巨大的安全漏洞,你又没法升级 JDK,那只好去购买订阅服务去修复了。
当然,你的公司也可以选择纯开源 OpenJDK。
注意,我这里说的都是公司,都是商业用途,如果只是个人学习 Java 的话,没什么影响!
【来源:码农翻身 作者:刘欣】