姓名:王梓霖 ? ? ?? 學(xué)號(hào):16020199033
轉(zhuǎn)載自https://www.ithome.com/0/402/532.htm惨缆,有刪節(jié)缀辩。
【嵌牛導(dǎo)讀】:從明年1月開始,Oracle要對(duì)JDK8就要收費(fèi)
【嵌牛鼻子】:JDK8 java oracle
【嵌牛提問】:JDK8從2019年1月開始就要收費(fèi)了踪央,怎么辦呢臀玄?
【嵌牛正文】:
其實(shí)這個(gè)問題本身就是有問題的,因?yàn)槭召M(fèi)的并不是JDK8 ,而是JDK8后續(xù)的update (更新)?畅蹂。
什么是update健无?如果你下載過JDK,就會(huì)看到那些8u191, 8u192這樣的東西液斜,191,192就是update的編號(hào)累贤。
這些update中通常會(huì)包含對(duì)JDK bug的fix,或者一些功能的改變少漆,增強(qiáng)臼膏,拿update 172為例:
1.這個(gè)update修改了下面兩個(gè)方法的文檔,讓文檔描述和方法的實(shí)現(xiàn)一致:
java.awt.Toolkit.getImage(URL u)
java.awt.Toolkit.createimage(URL u)
2.增加了在Windows8及以上版中示损,對(duì)Swing/AWT文本組件自動(dòng)顯示觸摸鍵盤的功能
3.?36個(gè)Bug Fix
假設(shè)JDK 8u192是2018年的最后一個(gè)update ,你下載并且安裝了渗磅,那可以繼續(xù)免費(fèi)使用下去,沒有任何問題。
但是從2019年1月開始始鱼,如果你還想獲取JDK的update ,對(duì)不起仔掸,你需要付費(fèi)訂閱。
這個(gè)訂閱服務(wù)的價(jià)格是這樣的:
對(duì)于PC医清,每用戶每月是2.5美元起暮,對(duì)于服務(wù)器/云部署,每個(gè)processor每月是25美元会烙,當(dāng)然负懦,數(shù)量多的話可以打折。
Oracle為什么要這么干呢柏腻?
我推測(cè)有兩個(gè)原因纸厉,第一個(gè)原因可以理解:Oracle JDK8 2014年3月發(fā)布,到2019年1月正式進(jìn)入“End of Public Updates”葫盼,這個(gè)版本Oracle支持了將近5年時(shí)間,一個(gè)版本的軟件不可能無限期地支持下去村斟,那樣維護(hù)成本太高贫导。
第二個(gè)原因可能是沒有多少人購買它的Java SE Advanced, Java SE Advanced Desktop或者Java SE Suite,這三個(gè)家伙是什么東西蟆盹??我們稍后解釋孩灯。
你也許注意到了,我剛才再說JDK的時(shí)候逾滥,特別加上了Oracle這個(gè)詞峰档,這是因?yàn)镴ava虛擬機(jī)的規(guī)范是開放的,任何人都可以去實(shí)現(xiàn)寨昙。
老劉在2017年編程提高群第一季中讥巡,不就和大家一起實(shí)現(xiàn)了一個(gè)極為簡單的版本嗎?當(dāng)然那不能稱為JVM舔哪,只實(shí)現(xiàn)了對(duì)Class文件的解析欢顷,和一個(gè)能實(shí)現(xiàn)順序,分支捉蚤,循環(huán)抬驴,多態(tài)的簡單執(zhí)行引擎。
其實(shí)現(xiàn)在的JDK提供者非常多缆巧,不像微軟的.NET布持,獨(dú)此一家,別無分號(hào)陕悬。
Open JDK
這個(gè)不多說题暖,免費(fèi)的開源實(shí)現(xiàn),以GPL License發(fā)布,很多Linux發(fā)行版中都會(huì)包含這個(gè)Open JDK芙委。
參與開發(fā)的大佬們有Oracle, RedHat (已被IBM收購)逞敷,Azul System, IBM , Apple , SAP。
Oracle JDK
就是我們常說的Java JDK灌侣,也是最常用的一個(gè)推捐,是Oracle公司(收購了開發(fā)Java的Sun公司)對(duì)Java SE的實(shí)現(xiàn)。
如果更詳細(xì)分的話侧啼,可以分為Oracle JDK和Oracle JRE牛柒。
比如你想玩Minecraft這樣需要Java的游戲,那只需要從java.com下載一個(gè)JRE就夠了痊乾。
如果你想基于Java做開發(fā)皮壁,那就需要從Oracle Technology Network(OTN)網(wǎng)站上下載JDK了。
其他公司提供的JDK
有實(shí)力的大公司哪审,都有可能開發(fā)自己的JDK蛾魄,比如IBM,肯定要為自家的操作系統(tǒng)AIX湿滓,還有z/OS開發(fā)SDK滴须。
我在IBM工作的時(shí)候,根本就沒有用過Oracle JDK叽奥,公司也不讓用啊扔水。
HP,SAP也有自己的JDK ,可以為自己的硬件和軟件做定制朝氓。
Oracle Java SE Advanced, Java?SE Advanced Desktop, Java SE Suite
這名字老長了魔市,也有點(diǎn)費(fèi)解,簡單來說赵哲,這是個(gè)收費(fèi)的服務(wù)待德,是Oracle為企業(yè)級(jí)用戶提供的高級(jí)工具和功能,可以監(jiān)控枫夺、部署磅网、管理企業(yè)級(jí)的Java程序,與此同時(shí)筷屡,你還可以下載那些老版本的JDK及其update涧偷。
換句話說,如果你購買了這個(gè)服務(wù)毙死,自然就不用擔(dān)心什么JDK update收費(fèi)的問題燎潮。
但是問題在于,到底有多少公司再使用這個(gè)服務(wù)扼倘?如果你的公司在使用确封,歡迎告知除呵。
所以我猜測(cè)Oracle耍了一點(diǎn)小手段,以后不要這個(gè)收費(fèi)的服務(wù)了爪喘,把這些高級(jí)的功能加上JDK update打包颜曾,統(tǒng)一成一個(gè)新的服務(wù),就是之前說的訂閱服務(wù)秉剑。
總結(jié)一下
如果你的公司已經(jīng)買了這個(gè)Java SE Advanced(或者Advanced Desktop)泛豪,Java SE Suite的License,什么都不用擔(dān)心,你很安全侦鹏。
如果你的公司正在使用Oracle JDK 8并且還想在2019年1月之后獲得那些更新和支持诡曙,你需要購買Orace的訂閱服務(wù)。
如果你的公司一直在在升級(jí)你的Oracle JDK略水,比如說已經(jīng)升級(jí)到JDK9了价卤,你什么服務(wù)都不用購買,因?yàn)槟莻€(gè)訂閱服務(wù)主要解決的是老版本的Update的問題渊涝。
或者可以選擇一個(gè)沒有public update的Oracle JDK慎璧,這也很常見,很多JDK已經(jīng)非常穩(wěn)定了跨释,比如Oracle JDK 7發(fā)布日期是2011年7月胸私,?“End of Public Updates”是2015年4月,我估計(jì)現(xiàn)在還有不少公司還在使用JDK7這個(gè)已經(jīng)沒有public update的版本吧煤傍!
如果真的出現(xiàn)了巨大的安全漏洞盖文,你又沒法升級(jí)JDK嘱蛋,那只好去購買訂閱服務(wù)去Fix了蚯姆。
當(dāng)然,你的公司也可以選擇純開源OpenJDK洒敏。
注意龄恋,我這里說的都是公司,都是商業(yè)用途凶伙,如果只是個(gè)人學(xué)習(xí)Java的話郭毕,沒什么影響!