技術趨勢:你的Oracle JDK交費了嗎?

技術趨勢:你的Oracle JDK交費了嗎?

從 2019 年 4 月 16 起的發行版更改了 Oracle Java 許可。


新的適用於 Oracle Java SE 的 Oracle 技術網許可協議 與以前的 Oracle Java 許可有很大差異。 新許可允許某些免費使用(例如個人使用和開發使用),而根據以前的 Oracle Java 許可獲得授權的其他使用可能會不再支持。 請在下載和使用此產品之前認真閱讀條款。

距離Oracle宣佈商用Oracle Jdk要收費已經過去一年了,公司的Oracle Jdk版本一直沒有升級,維持在8U211之前。但是,這始終是個問題,遲早要面對,最終我們決定採用OpenJDK,轟轟烈烈的Oracle Jdk替換為OpenJDK的升級過程就要開始了,但願別有什麼坑。

下面梳理一下JDK的收費的問題。

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

問題一:Oracle JDK使用什麼協議?

BCL協議,即Oracle Binary Code License Agreement,協議規定你可以使用JDK,但是不能進行修改。私用和商用都可以,但是JDK中的某些商業特性,是需要付費才可以使用的。OTN協議,即Oracle Technology Network License Agreement,目前新發布的JDK用的都是這個協議,可以私用,商用需要付費。Oracle JDK在8U211之前是BCL協議,之後都是OTN協議。

問題二:不想掏錢怎麼辦?

可以使用OpenJDK,OpenJDK是一個基於GPLv2+CE協議的開源JDK實現,他由OpenJDK社區來運作,作為OpenJDK社區的主導者,Oracle也在儘量減小OpenJDK和Oracle JDK的差別,將一些商業特性移植到了OpenJDK上,比如Java Flight Recorder,Java Mission Control和ZGC等等。對於普通開發者,兩者差異可忽略不計。

除了Oracle的OpenJDK,還有很多免費OpenJDK實現可以用,比如 Zulu,AdoptOpenJDK,Amazon的Corretto和阿里巴巴的dragonwell等等。

問題三:OpenJDK和OracleJDK有什麼關係?

Yes. Oracle JDK is based on the OpenJDK source code. In addition, it contains closed-source components

是的,Oracle JDK 是在OpenJDK源碼的基礎上編譯的,加入了一些商業化組件和features.除此之外,我們還關心兩者的發佈關係,下面來看下JDK的發佈模型。2017年9月21日,伴隨著JDK9的發佈,JDK就開啟了新的發佈模式(如下圖所示)。JDK分為OracleJDK、OpenJDK。

技術趨勢:你的Oracle JDK交費了嗎?

OpenJDK的lience是GPLv2+CPE,可以免費使用。從JDK9開始,OpenJDK每6個月發佈一次,也就是每年的3月份、9月份各發布一次,稱為feature release。JDK9就是在2017年9月份過GA的。除了feature release之外,OpenJDK每個季度會提供一個update release。分別在1月份、4月份、7月份和10月份。所以每個feature release之後,都會有兩個update release。

使用OracleJDK需要commercial license,這個不是免費的。OracleJDK每3年發佈一次LTS(Long Term Support)版本,Support的期限是8年。2018年9月發佈的JDK11是第一個LTS版本,support到2026年9月。同樣,OracleJDK每年也有4個update release。因為OracleJDK每3年發佈一次LTS版本,所以下一次LTS將在2021年9月份發佈。

問題四:Oracle JDK 和 Open JDK有什麼區別

參考 https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later 所說,可以看到大概有幾點區別:

1.Oracle JDK 包含了OpenJDK版本中沒有的“商業特性”。然而,正如承諾的那樣,在過去的一年中,Oracle正在為OpenJDK社區貢獻這些特性:

  • Java Flight Recorder,
  • Java Mission Control,
  • Application Class-Data Sharing, and
  • ZGC.
  • Oracle認為,從Java 11開始,Oracle JDK構建和OpenJDK構建在本質上是相同的。

    From Java 11 forward, therefore, Oracle JDK builds and OpenJDK builds will be essentially identical.

    1. 仍然存在少量的差異,有些是故意的(可能因為Sun公司源碼協議問題),有些是修飾性的,有些只是因為需要更多的時間與OpenJDK貢獻者進行討論,具體如下:
    • Oracle JDK 11在使用-XX:+ unlockcommercial alfeatures選項時發出警告,而在OpenJDK中,這個選項會導致錯誤。
    • 可以將Oracle JDK 11配置為向“高級管理控制檯”工具提供日誌數據,這是一個單獨的商業Oracle產品。
    • Oracle JDK中包含一些OpenJDK中不存在的模塊(不過從Oracle的描述來看,這些差別是一些遺留原因造成的,Oracle會逐步消除這些差異),具體如下:
      • javafx.base
      • javafx.controls
      • javafx.fxml
      • javafx.graphics
      • javafx.media
      • javafx.web
      • java.jnlp
      • jdk.jfr
      • jdk.management.cmm
      • jdk.management.jfr
      • jdk.management.resource
      • jdk.packager.services
      • jdk.snmp
    • java -version和java -fullversion命令的輸出將區分Oracle JDK構建和OpenJDK構建,具體來說,運行java -version:

    Oracle JDK 11的構建結果如下:

    java 11 2018-09-25

    Java(TM) SE Runtime Environment 18.9 (build 11+28)

    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11+28, mixed mode)

    And for an OpenJDK 11 build:

    openjdk version "11" 2018-09-25

    OpenJDK Runtime Environment 18.9 (build 11+28)

    OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

    • Oracle JDK一直要求第三方加密提供者由已知的證書籤名。OpenJDK中的加密框架有一個開放的加密接口,這意味著它不限制可以使用哪些提供程序。
    • Oracle JDK 11將繼續包括安裝程序、品牌和JRE打包,以獲得與傳統桌面使用一致的體驗。Oracle OpenJDK的構建版本目前以zip和tar.gz文件的形式提供,同時還在考慮其他的發佈格式。

    問題五:我們願意掏錢,怎麼收費?

    可以通過訂閱Java SE Subscription來付費,桌面用途每人每月2.5刀,服務器用途每個處理器每月25刀,量多還有優惠。

    寫在最後:

    Money!但是掙錢的同時,Oracle也不想把市場整沒了,畢竟在這個領域內還有一些競爭者,所以在提供了商用收費、私用免費模式的同時,推出了OpenJDK,供企業免費使用;從Oracle JDK和OpenJDK的發佈來看,OpenJDK的發佈頻率更快,也存在OpenJDK為Oracle JDK探路的用意;Oracle JDK提供給對穩定性要求更高的企業用戶,比如說傳統的大企業,不差錢;OpenJDK提供給一些急先鋒,反正你自己公司一週幾個版本,bug不斷,也不在乎OpenJDK升級的這點風險。

    來個投票,也歡迎已經大規模遷移過的朋友留言探討遷移過程中是否有什麼坑:

    你的公司使用什麼 (單選)
    0人
    0%
    給錢用Oracle JDK
    0人
    0%
    轉換為OpenJDK
    0人
    0%
    醬油
    <button>投票/<button>



    分享到:


    相關文章: