下月起Oracle要对JDK8收费了,怎么办?

2018-12-26 16:24IT之家 - 刘欣

本文授权转载自微信公众号“码农翻身”(ID:coderising),作者:刘欣

原标题:从明年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的话,没什么影响!

后记:这篇文章是我从网络上查阅资料,综合分析后写的,如果有不正确的地方,欢迎批评指正。

参考资料:

Oracle Java SE and Oracle Java Embedded Products

Java SE 概览

Java SE Offerings

How to Prep for New Updates to Oracle Java SE 8 Licensing

End of Public Updates is a Process, not an Event

更多内容可关注作者微信公众号“码农翻身”(ID:coderising)

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

文章价值:
人打分
有价值还可以无价值
置顶评论
    热门评论
      文章发布时间太久,仅显示热门评论
      全部评论
      一大波评论正在路上
        取消发送
        软媒旗下人气应用

        如点击保存海报无效,请长按图片进行保存分享