尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
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。
假設 JDK 8u192 是 2018 年的最後一個 Update,你下載並且安裝了,那可以繼續免費使用下去,沒有任何問題。
但是從 2019 年 1 月開始,如果你還想獲取 JDK 的 Update,對不起,你需要付費訂閱。
這個訂閱服務的價格是這樣的:
對於 PC,每用戶每月是 2.5 美元,對於服務器 / 雲部署,每個 processor 每月是 25 美元,當然,數量多的話可以打折。
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,獨此一家,別無分號。
Open JDK
這個不多說,免費的開源做到,以 GPL License 發布,很多 Linux 發行版中都會包含這個 Open JDK 。
參與開發的大佬們有 Oracle、RedHat ( 已被 IBM 收購 ) 、Azul System、IBM、Apple、SAP。
Oracle JDK
就是我們常說的 Java JDK,也是最常用的一個,是 Oracle 公司 ( 收購了開發 Java 的 Sun 公司 ) 對 Java SE 的做到。
如果更詳細分的話,可以分為 Oracle JDK 和 Oracle JRE。
比如你想玩 Minecraft 這樣需要 Java 的遊戲,那只需要從 java.com 下載一個 JRE 就夠了。
如果你想基於 Java 做開發,那就需要從 Oracle Technology Network ( OTN ) 網站上下載 JDK 了。
其他公司提供的 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 打包,統一成一個新的服務,就是之前說的訂閱服務。
總結一下
如果你的公司已經買了這個 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 的話,沒什麼影響!