天天看點

"Oracle要對Java收費了,SAP基于Java技術棧的那些産品的客戶怎麼辦"JDK - Java Development Kit在我電腦上是好的。Oracle JDK

今年年初的時候,所謂“Oracle要對Java收費”的新聞,在網上傳得沸沸揚揚。這個新聞被專業人士視為标題黨,而國内衆多技術論壇,比如知乎社群上,有很多大神對“Java收費”這個說法做出了非常專業的解讀,Jerry這裡就不班門弄斧了,Bing搜尋引擎根據“Oracle Java收費”的關鍵字搜尋,第一條搜尋結果就值得閱讀。

"Oracle要對Java收費了,SAP基于Java技術棧的那些産品的客戶怎麼辦"JDK - Java Development Kit在我電腦上是好的。Oracle JDK
Jerry本文想掃盲的重點,是介紹JDK,Oracle JDK, Open JDK和SAP JDK這幾個名詞的關系。

JDK - Java Development Kit

Java程式設計語言的軟體開發工具包,是Java開發的核心,包含了Java運作環境即JVM(Java Virtual Machine)和Java系統類庫,以及大量工具。

Jerry以前在SAP德國總部和CRM開發團隊一位擁有20年ABAP程式設計經驗的德國老同僚閑聊,談到近些年來越來越多的SAP産品技術棧換成了Java,這位同僚從沒接觸過Java,好奇地問我啥是JDK.

"Oracle要對Java收費了,SAP基于Java技術棧的那些産品的客戶怎麼辦"JDK - Java Development Kit在我電腦上是好的。Oracle JDK

我當時給他的解釋是(為了節省篇幅,Jerry這裡就不放英文了),“想想你在SAPGUI裡編寫的ABAP代碼,激活後運作在C/C++實作的ABAP運作時(runtime)也就是ABAP虛拟機裡。”

"Oracle要對Java收費了,SAP基于Java技術棧的那些産品的客戶怎麼辦"JDK - Java Development Kit在我電腦上是好的。Oracle JDK

“另外,Netweaver ABAP平台提供了很多基礎設施層面的功能,比如用于HTTP通信的CL_HTTP_CLIENT和CL_HTTP_SERVER, ABAP裡有很多這種類庫,都存儲在BASIS這個包和它的子包下面。是以ABAP Development Kit就是ABAP運作時和ABAP類庫的組合,而JDK就是Java運作時和Java類庫的組合,就這麼簡單。”

看到德國同僚露出了了解後的笑容,Jerry心想,有一點我沒告訴你,和ABAP這種Server Side的開發模式相比,用Java開發企業級應用免不了在本地搭各種開發環境,是以Java開發人員要有在本地搭環境時可能會遇到各種各樣問題的心理準備。當初Jerry的朋友吳脊老師2015年加入SAP成都研究院時,Jerry作為他的導師,一起在本地搭一個Java開發環境,最後花了一周的時間才搭好。在那一周的時間裡,下面這句話,Jerry說了起碼不下十次:

在我電腦上是好的。

"Oracle要對Java收費了,SAP基于Java技術棧的那些産品的客戶怎麼辦"JDK - Java Development Kit在我電腦上是好的。Oracle JDK

Oracle JDK

建立了Java程式設計語言的Sun公司,于2009年以74億美元的白菜價被Oracle收購之後,越來越多的Java初學者将Oracle JDK等同為JDK. 這并不奇怪,畢竟Google JDK關鍵字,位于搜尋結果前列的全是www.oracle.com開頭的頁面:

"Oracle要對Java收費了,SAP基于Java技術棧的那些産品的客戶怎麼辦"JDK - Java Development Kit在我電腦上是好的。Oracle JDK

由于Oracle和SAP的關系(SAP從業者都懂的),在Oracle旗下的Java傳出“要收費”的消息後, 一部分使用Java進行二次開發的SAP從業者們心裡不免感到緊張,其實大可不必。

Jerry大學的時候,一心想幹掉Java的微軟曾經搞出一個叫做J++的程式設計語言,以及對應的Visual J++這個IDE. 不過當時Jerry就讀的電子科大計算機學院的程式設計課全用的C/C++,我周圍認識的同學們也沒人搗鼓這個語言。這個J++雖然有着和Java相同的文法和關鍵字,但是隻能運作在微軟的作業系統上,後來據說山寨了Java的微軟被Sun告了,賠了20億美元,然後就沒有然後了。

"Oracle要對Java收費了,SAP基于Java技術棧的那些産品的客戶怎麼辦"JDK - Java Development Kit在我電腦上是好的。Oracle JDK

有意思的是,剛剛過去的十月末,微軟釋出了一封

公開信

原文如下:

"Oracle要對Java收費了,SAP基于Java技術棧的那些産品的客戶怎麼辦"JDK - Java Development Kit在我電腦上是好的。Oracle JDK

這封信是發給Open JDK社群的,微軟首先宣布自己正式加入Open JDK社群,動機之一是因為微軟有越來越多的産品和服務需要依賴于Java, 比如Azure上的Java Runtime. 正如Jerry最近工作的一個項目用到的SAP Commerce Cloud on Azure,就是這種依賴的受益者。

"Oracle要對Java收費了,SAP基于Java技術棧的那些産品的客戶怎麼辦"JDK - Java Development Kit在我電腦上是好的。Oracle JDK

接着微軟在公開信中,低調地承認Oracle是Open JDK項目的大佬,自己的團隊加入Open JDK社群後,會從小bug修複和功能backport入手,努力成為一名社群好公民。果然英雄所見略同,以前Jerry的開發團隊每當加入一個新産品的開發大家庭之初,也是通過修bug和做downport來掌握開發知識和熟悉流程的。

信中最後一句話:We look forward to participating in the future of Java —— Java的未來,微軟也期望參與其中。

是以,這個Open JDK到底是什麼鬼?

官網:

https://openjdk.java.net/

Open JDK是Sun在2006年末把Java開源而形成的項目,而Oracle JDK是基于Open JDK的商業實作。Open JDK和Oracle JDK的關系,好比Open UI5和SAP UI5, Kyma和SAP Cloud Platform Extension Factory一樣。

"Oracle要對Java收費了,SAP基于Java技術棧的那些産品的客戶怎麼辦"JDK - Java Development Kit在我電腦上是好的。Oracle JDK

java -version的輸出如果看到出現了HotSpot,說明是Oracle JDK:

"Oracle要對Java收費了,SAP基于Java技術棧的那些産品的客戶怎麼辦"JDK - Java Development Kit在我電腦上是好的。Oracle JDK

而Jerry的阿裡雲上,輸出則是Open JDK:

"Oracle要對Java收費了,SAP基于Java技術棧的那些産品的客戶怎麼辦"JDK - Java Development Kit在我電腦上是好的。Oracle JDK

說了這麼多,和SAP有啥關系?

大家可以通路這個公網

連結

.

SAPMachine,是一個SAP基于Open JDK打造的JDK,在前者的基礎上,SAP針對企業級應用需要的可支援性(supportability)和可靠性(reliability)等方面做了增強。

"Oracle要對Java收費了,SAP基于Java技術棧的那些産品的客戶怎麼辦"JDK - Java Development Kit在我電腦上是好的。Oracle JDK

SAPMachine既可以在上述github連結裡下載下傳,也可以在SAP

官網

下載下傳:

"Oracle要對Java收費了,SAP基于Java技術棧的那些産品的客戶怎麼辦"JDK - Java Development Kit在我電腦上是好的。Oracle JDK

像SAP這樣基于Open JDK之上為自己的企業量身定做一個JDK出來的做法在業界非常普遍。

比如亞馬遜的Corretto,源代碼位址:

https://github.com/corretto
"Oracle要對Java收費了,SAP基于Java技術棧的那些産品的客戶怎麼辦"JDK - Java Development Kit在我電腦上是好的。Oracle JDK

還有國内阿裡巴巴的AJDK: Dragonwell

"Oracle要對Java收費了,SAP基于Java技術棧的那些産品的客戶怎麼辦"JDK - Java Development Kit在我電腦上是好的。Oracle JDK

可以說阿裡的解決方案之是以能經受諸如雙十一這樣對高并發高可用性要求極高的嚴酷場景下的考驗,阿裡自己的JDK功不可沒。

下面一段話來自阿裡雲栖社群一篇文章:

支撐雙11每秒17.5萬單事務 阿裡巴巴對JVM都做了什麼?

最早從2010年,阿裡巴巴就開始了基于OpenJDK6的JVM定制優化工作,這也是國内第一個優化、定制且開源的伺服器版Java虛拟機。2015年開始,阿裡巴巴JVM團隊開始着手在OpenJDK8進行優化和定制工作,力求在穩定性,性能優化,以及技術前瞻性方面,滿足阿裡巴巴,螞蟻金服,以及菜鳥快速發展的業務需求。定制的版本被命名為AJDK(Alibaba JDK),目前淘寶、天貓,螞蟻,菜鳥,幾乎所有的核心應用都從Oracle JDK切換到了AJDK上,并經過了雙11的考驗。

"Oracle要對Java收費了,SAP基于Java技術棧的那些産品的客戶怎麼辦"JDK - Java Development Kit在我電腦上是好的。Oracle JDK

希望通過本文的介紹,大家能夠對幾種不同的JDK有一個最基本的了解。對于本文題目引号中的僞命題,相信大家心中已經有答案了。

本文來自雲栖社群合作夥伴“汪子熙”,了解相關資訊可以關注微信公衆号"汪子熙"。