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.
英文原文:Oracle Announces Java 7 End of Life