Oracle如何對JDK收費

今年4月16日,Oracle發佈了新的JDK 8的更新,版本號爲8u211和8u212。與以往不同的是,新版本的許可協議從BCL換成了OTN,這就意味着,你不能在生產環境使用這個版本了。如果你想繼續使用8u211/8u212,或者之後發佈的新版本,就需要給Oracle交錢了。

當然,並不是你用了新版本的JDK就要交錢,這個時候要區分私用和商用:

私用,是我總結的一個詞,它包括”Personal Use”和”Development Use”,前者表示一些個人用途,比方說在自己的電腦上寫一些小工具,做一些數據分析等等;後者表示開發用途,比如日常開發、做測試、做演示等等。商用不太好界定。我的理解就是拿來賺錢就是商用,比方說把網站部署到生產環境,在公司內部系統使用等。

我用的JDK使用什麼協議?

BCL協議,即Oracle Binary Code License Agreement,協議規定你可以使用JDK,但是不能進行修改。私用和商用都可以,但是JDK中的某些商業特性,是需要付費纔可以使用的。OTN協議,即Oracle Technology Network License Agreement,目前新發布的JDK用的都是這個協議,可以私用,商用需要付費。從下圖可以看出各個版本對應的協議:

我不想掏錢怎麼辦?

商用的話使用上面BCL協議的版本,私用怎麼着都行。很多時候,開發者會對什麼版本用了什麼協議比較迷惑,懶得搞清楚,那麼可以直接使用OpenJDK

OpenJDK是一個基於GPLv2+CE協議的開源JDK實現,他由OpenJDK社區來運作,作爲OpenJDK社區的主導者,Oracle也在儘量減少OpenJDK和Oracle JDK的差別(source),將一些商業特性移植到了OpenJDK上,比如Java Flight Recorder,Java Mission Control和ZGC等等。對於普通開發者,兩者差異可忽略不計。OpenJDK同樣會每6個月發佈一個新版本,不過每次新的版本發佈後,舊的就不維護了,比如OpenJDK 12發佈之後,11版本便停止更新,停留在11.0.2版本,沒有LTS一說了。

除了Oracle的OpenJDK,還有很多免費OpenJDK實現可以用,比如 ZuluAdoptOpenJDK,Amazon的Corretto和阿里巴巴的dragonwell等等。具體他們有什麼區別,我們以後再說。

我們大廠願意掏錢怎麼辦?

可以通過訂閱Java SE Subscription來付費,桌面用途每人每月2.5刀,服務器用途每個處理器每月25刀,量多還有優惠。Oracle以前還提供Java SE Advanced, Java SE Advanced Desktop和 Java SE Suite等一次性授權,不過現在都建議新老付費用戶換成訂閱制了。

Oracle爲什麼這麼做

當然是賺錢,OTN協議的Oracle JDK現在允許私用也只是想讓開發者養成習慣,將來開發者搞公司項目的時候,非常有可能會習慣性去Oracle官網下載JDK,這樣就導導致了商用項目未經許可違規使用。Oracle法務部的刀肯定老早就磨好了。

參考資料:


作者:悶瓜蛋子
鏈接:https://juejin.im/post/5ccce2006fb9a032143770e4
來源:掘金
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章