640?wx_fmt=gif

640?wx_fmt=jpeg

作者 | 刘欣

本文经授权转自公众号“码农翻身”

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。

640?wx_fmt=jpeg

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

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

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

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


640?wx_fmt=png

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,独此一家,别无分号。


640?wx_fmt=png

Open JDK


这个不多说,免费的开源实现,以 GPL License 发布,很多 Linux 发行版中都会包含这个 Open JDK 。

参与开发的大佬们有 Oracle、RedHat (已被 IBM 收购)、Azul System、IBM、Apple、SAP。


640?wx_fmt=png

Oracle JDK


就是我们常说的 Java JDK,也是最常用的一个,是 Oracle 公司(收购了开发 Java 的 Sun 公司)对 Java SE 的实现。

如果更详细分的话,可以分为 Oracle JDK 和 Oracle JRE。

比如你想玩 Minecraft 这样需要 Java 的游戏,那只需要从 java.com 下载一个 JRE 就够了。

如果你想基于 Java 做开发,那就需要从 Oracle Technology Network(OTN)网站上下载 JDK 了。


640?wx_fmt=png

其他公司提供的 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 打包,统一成一个新的服务,就是之前说的订阅服务。


640?wx_fmt=png

总结一下


如果你的公司已经买了这个 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 的话,没什么影响!


640?wx_fmt=jpeg

 热 文 推 荐 

☞ 这是 1000 万程序员都想要的格子衫!

☞ 为什么大公司一定要使用 DevOps?

☞ 阿里涉足零售 IoT 的猜想

 刚发布!Python 一二线城市月薪 15K 起!12 月再夺语言榜首

 为什么都瞧不起培训班出来的程序员?

用对这30种秘密武器, 你也能成为区块链高手!

 MIT新福利,2019人工智能公开课上线啦!

“车联网”最强科普!据说它是未来五年5G兴衰的晴雨表?


 
 

print_r('点个赞吧!');
var_dump('点个赞吧!');
NSLog(@"点个赞吧!");
System.out.println("点个赞吧!");
console.log("点个赞吧!");
print("点个赞吧!");
printf("点个赞吧!\n");
cout << "点个赞吧!" << endl;
Console.WriteLine("点个赞吧!");
fmt.Println("点个赞吧!");
Response.Write("点个赞吧!");
alert("点个赞吧!")
echo "点个赞吧!"

640?wx_fmt=gif点击“阅读原文”,打开 CSDN App 阅读更贴心!

640?wx_fmt=png
Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐