本文授權(quán)轉(zhuǎn)載自微信公眾號“碼農(nóng)翻身”(ID:coderising),作者:劉欣
原標題:從明年1月開始,Oracle要對JDK8就要收費了,怎么辦?
JDK8從2019年1月開始就要收費了,怎么辦呢?
其實這個問題本身就是有問題的,因為收費的并不是JDK8 ,而是JDK8后續(xù)的update (更新) 。
什么是update?如果你下載過JDK,就會看到那些8u191, 8u192這樣的東西,191,192就是update的編號。
這些update中通常會包含對JDK bug的fix,或者一些功能的改變,增強,拿update 172為例:
1.這個update修改了下面兩個方法的文檔,讓文檔描述和方法的實現(xiàn)一致:
java.awt.Toolkit.getImage(URL u)
java.awt.Toolkit.createimage(URL u)
2.增加了在Windows8及以上版中,對Swing/AWT文本組件自動顯示觸摸鍵盤的功能
3. 36個Bug Fix
假設JDK 8u192是2018年的最后一個update ,你下載并且安裝了,那可以繼續(xù)免費使用下去,沒有任何問題。
但是從2019年1月開始,如果你還想獲取JDK的update ,對不起,你需要付費訂閱。
這個訂閱服務的價格是這樣的:
對于PC,每用戶每月是2.5美元,對于服務器/云部署,每個processor每月是25美元,當然,數(shù)量多的話可以打折。
Oracle為什么要這么干呢?
我推測有兩個原因,第一個原因可以理解:Oracle JDK8 2014年3月發(fā)布,到2019年1月正式進入“End of Public Updates”,這個版本Oracle支持了將近5年時間,一個版本的軟件不可能無限期地支持下去,那樣維護成本太高。
第二個原因可能是沒有多少人購買它的Java SE Advanced, Java SE Advanced Desktop或者Java SE Suite,這三個家伙是什么東西? 我們稍后解釋。
你也許注意到了,我剛才再說JDK的時候,特別加上了Oracle這個詞,這是因為Java虛擬機的規(guī)范是開放的,任何人都可以去實現(xiàn)。
老劉在2017年編程提高群第一季中,不就和大家一起實現(xiàn)了一個極為簡單的版本嗎?當然那不能稱為JVM,只實現(xiàn)了對Class文件的解析,和一個能實現(xiàn)順序,分支,循環(huán),多態(tài)的簡單執(zhí)行引擎。
其實現(xiàn)在的JDK提供者非常多,不像微軟的.NET,獨此一家,別無分號。
Open JDK
這個不多說,免費的開源實現(xiàn),以GPL License發(fā)布,很多Linux發(fā)行版中都會包含這個Open JDK。
參與開發(fā)的大佬們有Oracle, RedHat (已被IBM收購),Azul System, IBM , Apple , SAP。
Oracle JDK
就是我們常說的Java JDK,也是最常用的一個,是Oracle公司(收購了開發(fā)Java的Sun公司)對Java SE的實現(xiàn)。
如果更詳細分的話,可以分為Oracle JDK和Oracle JRE。
比如你想玩Minecraft這樣需要Java的游戲,那只需要從java.com下載一個JRE就夠了。
如果你想基于Java做開發(fā),那就需要從Oracle Technology Network(OTN)網(wǎng)站上下載JDK了。
其他公司提供的JDK
有實力的大公司,都有可能開發(fā)自己的JDK,比如IBM,肯定要為自家的操作系統(tǒng)AIX,還有z/OS開發(fā)SDK。
我在IBM工作的時候,根本就沒有用過Oracle JDK,公司也不讓用啊。
HP,SAP也有自己的JDK ,可以為自己的硬件和軟件做定制。
Oracle Java SE Advanced, Java SE Advanced Desktop, Java SE Suite
這名字老長了,也有點費解,簡單來說,這是個收費的服務,是Oracle為企業(yè)級用戶提供的高級工具和功能,可以監(jiān)控、部署、管理企業(yè)級的Java程序,與此同時,你還可以下載那些老版本的JDK及其update。
換句話說,如果你購買了這個服務,自然就不用擔心什么JDK update收費的問題。
但是問題在于,到底有多少公司再使用這個服務?如果你的公司在使用,歡迎告知。
所以我猜測Oracle耍了一點小手段,以后不要這個收費的服務了,把這些高級的功能加上JDK update打包,統(tǒng)一成一個新的服務,就是之前說的訂閱服務。
總結(jié)一下
如果你的公司已經(jīng)買了這個Java SE Advanced(或者Advanced Desktop),Java SE Suite的License,什么都不用擔心,你很安全。
如果你的公司正在使用Oracle JDK 8并且還想在2019年1月之后獲得那些更新和支持,你需要購買Orace的訂閱服務。
如果你的公司一直在在升級你的Oracle JDK,比如說已經(jīng)升級到JDK9了,你什么服務都不用購買,因為那個訂閱服務主要解決的是老版本的Update的問題。
或者可以選擇一個沒有public update的Oracle JDK,這也很常見,很多JDK已經(jīng)非常穩(wěn)定了,比如Oracle JDK 7發(fā)布日期是2011年7月, “End of Public Updates”是2015年4月, 我估計現(xiàn)在還有不少公司還在使用JDK7這個已經(jīng)沒有public update的版本吧!
如果真的出現(xiàn)了巨大的安全漏洞,你又沒法升級JDK,那只好去購買訂閱服務去Fix了。
當然,你的公司也可以選擇純開源OpenJDK。
注意,我這里說的都是公司,都是商業(yè)用途,如果只是個人學習Java的話,沒什么影響!
后記:這篇文章是我從網(wǎng)絡上查閱資料,綜合分析后寫的,如果有不正確的地方,歡迎批評指正。
參考資料:
《Oracle Java SE and Oracle Java Embedded Products》
《How to Prep for New Updates to Oracle Java SE 8 Licensing》
《End of Public Updates is a Process, not an Event》
更多內(nèi)容可關(guān)注作者微信公眾號“碼農(nóng)翻身”(ID:coderising)
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。