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