Oracle宣布Java 7生命周期终结

 Oracle于2015年4月停止在公共渠道发布Java 7安全补丁和升级包,以敦促用户迁移至Java 8或购买Java 7的长期商业支持服务。后续可能有其它第三方机构为其提供公共更新。

这次计划内的EOL(end-of-life)最初于2014年3月宣布,并且预计不会对普通用户产生影响(Oracle在2015年1月就启动了从Java 7到8的自动更新),但Java开发者和高级用户也许会碰到一些问题。很多工具和库仍然依赖于一些已在Java 7中标记为废弃的功能特性,而这些特性在Java 8中则被完全移除了,由此导致这些工具与新版本的Java不兼容,它们必须在用户升级Java版本之前做相应的更改。

Oracle不再发布更新并不表示Java 7完全不能用了,但这意味着Oracle不会为Java 7上未来可能发现的任何隐患和漏洞提供补丁,从而使最终用户面临风险。也就是说那些仍在使用与Java 8不兼容的工具的用户要么选择继续使用Java 7并接受潜在的风险,购买长期商业支持,要么迁移到另一个工具。这使得压力都转移到工具开发者身上,尤其是那些开源项目的负责人,因为他们得把对项目的日常职责与迁移至最新版Java的工作结合起来。身为FamilySearch的首席工程师同时也是Enunciate创始人的Ryan Heaton就是例子,Enunciate是一个被广泛使用的Java文档引擎工具,目前不能在Java 8上使用。

我觉得Java 7的EOL来得太快了。我本希望他们能再等一段时间,但是我也理解维护老版本产品和API的开销太大。不过说实话,不管Oracle决定何时终止Java 7,我可能都会觉得太快了。我得承认这促使我尽快更新自己的项目。

从另一方面来说,这次迁移只有一个选择看起来似乎不同寻常,难道不应该在Java 7 EOL之前就发布Java 9供用户选择吗?

Oracle JVM的替代品

虽然Oracle的JVM最为流行,但它并不是唯一的JVM。各种不同的机构和用户群实现了许多JVM,既有开源的也有专有的,分别提供不同级别的支持。比如Azul Systems,它提供两种带有商业支持的JVM,不仅为Java 7提供更新包,甚至还支持Java 6.