Oracle 宣布 Java 7 生命周期終結
Oracle 于 2015 年 4 月停止在公共渠道發(fā)布 Java 7 安全補丁和升級包,以敦促用戶遷移至 Java 8 或購買 Java 7 的長期商業(yè)支持服務。后續(xù)可能有其它第三方機構為其提供公共更新。
這次計劃內的 EOL(end-of-life)最初于2014 年 3 月宣布,并且預計不會對普通用戶產生影響(Oracle 在 2015 年 1 月就啟動了從 Java 7 到 8 的自動更新),但 Java 開發(fā)者和高級用戶也許會碰到一些問題。很多工具和庫仍然依賴于一些已在 Java 7 中標記為廢棄的功能特性,而這些特性在 Java 8 中則被完全移除了,由此導致這些工具與新版本的 Java 不兼容,它們必須在用戶升級 Java 版本之前做相應的更改。
Oracle 不再發(fā)布更新并不表示 Java 7 完全不能用了,但這意味著 Oracle 不會為 Java 7 上未來可能發(fā)現的任何隱患和 漏洞提供補丁,從而使最終用戶面臨風險。也就是說那些仍在使用與 Java 8 不兼容的工具的用戶要么選擇繼續(xù)使用 Java 7 并接受潛在的風險,購買長期商業(yè)支持,要么遷移到另一個工具。這使得壓力都轉移到工具開發(fā)者身上,尤其是那些開源項目的負責人,因為他們得把對項目的日常 職責與遷移至***版 Java 的工作結合起來。身為 FamilySearch 的***工程師同時也是 Enunciate 創(chuàng)始人的 Ryan Heaton 就是例子,Enunciate 是一個被廣泛使用的 Java 文檔引擎工具,目前不能在 Java 8 上使用。
我覺得 Java 7 的 EOL 來得太快了。我本希望他們能再等一段時間,但是我也理解維護老版本產品和 API 的開銷太大。不過說實話,不管 Oracle 決定何時終止 Java 7,我可能都會覺得太快了。我得承認這促使我盡快更新自己的項目。
從另一方面來說,這次遷移只有一個選擇看起來似乎不同尋常,難道不應該在 Java 7 EOL 之前就發(fā)布 Java 9 供用戶選擇嗎?
Oracle JVM的替代品
雖然 Oracle 的 JVM 最為流行,但它并不是唯一的 JVM。各種不同的機構和用戶群實現了許多 JVM,既有開源的也有專有的,分別提供不同級別的支持。比如 Azul Systems,它提供兩種帶有商業(yè)支持的 JVM,不僅為 Java 7 提供更新包,甚至還支持 Java 6.