中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java是不是開源的

發布時間:2020-11-13 12:27:52 來源:億速云 閱讀:143 作者:小新 欄目:編程語言

小編給大家分享一下java是不是開源的,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

在2006年11月13日的JavaOne大會上,Sun公司宣布最終會將Java開源,并在隨后的一年多時間內,陸續將JDK的各個部分在GPL v2(GNU General Public License v2)協議下公開了源碼,并建立了OpenJDK組織對這些源碼進行獨立管理。除了極少量的產權代碼(Encumbered Code,這部分代碼大多是Sun本身也無權限進行開源處理的)外,OpenJDK幾乎包括了Sun JDK的全部代碼,OpenJDK的質量主管曾經表示,在JDK 1.7中,Sun JDK和OpenJDK除了代碼文件頭的版權注釋之外,代碼基本上完全一樣,所以OpenJDK 7與Sun JDK 1.7本質上就是同一套代碼庫開發的產品。

2006年11月13日,Sun Microsystems正式開源Java。事實上Java的源代碼在發布第一天就可以訪問,這一策略幫助Java在早年推動了平臺的建立。

Java之父James Gosling稱,他們公開源代碼的意圖是讓社區幫助進行安全分析、bug報告、增強性能、了解偏僻個案等。Java最早使用的許可證允許內部使用源代碼但不能分發。

IBM當時呼吁將Java捐給Apache軟件基金會,使用Apache許可證分發,但Sun最終決定在GPL許可證下開源Java。GPL許可證要求衍生版本需要公開分發。Gosling稱這能讓Java更好的適應開源社區。Sun在2010年被甲骨文收購,Java也落到了甲骨文手中,由甲骨文主導Java的演化。

JDK 1.6發布以后,由于代碼復雜性的增加、JDK開源、開發JavaFX、經濟危機及Sun收購案等原因,Sun在JDK發展以外的事情上耗費了很多資源,JDK的更新沒有再維持兩年發布一個主版本的發展速度。JDK 1.6到目前為止一共發布了37個Update版本,最新的版本為Java SE 6 Update 37,于2012年10月16日發布。

OpenJDK原是SunMicrosystems公司為Java平臺構建的Java開發環境(JDK)的開源版本,完全自由,開放源碼。Sun Microsystems公司在2006年的JavaOne大會上稱將對Java開放源代碼,于2009年4月15日正式發布OpenJDK。甲骨文在 2010 年收SunMicrosystem之后接管了這個項目。

java在發行過程中分為了openjdk和sun/oracle JDK兩種。

關于JDK和OpenJDK的區別,可以歸納為以下幾點:

授權協議的不同:

openjdk采用GPL V2協議放出,而JDK則采用JRL放出。兩者協議雖然都是開放源代碼的,但是在使用上的不同在于GPL V2允許在商業上使用,而JRL只允許個人研究使用。

OpenJDK不包含Deployment(部署)功能:

部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,這些功能在Openjdk中是找不到的。

OpenJDK源代碼不完整:

這個很容易想到,在采用GPL協議的Openjdk中,sun jdk的一部分源代碼因為產權的問題無法開放openjdk使用,其中最主要的部份就是JMX中的可選元件SNMP部份的代碼。因此這些不能開放的源代碼將它作成plug,以供OpenJDK編譯時使用,你也可以選擇不要使用plug。而Icedtea則為這些不完整的部分開發了相同功能的源代碼(OpenJDK6),促使OpenJDK更加完整。

部分源代碼用開源代碼替換:

由于產權的問題,很多產權不是SUN的源代碼被替換成一些功能相同的開源代碼,比如說字體柵格化引擎,使用Free Type代替。

openjdk只包含最精簡的JDK:

OpenJDK不包含其他的軟件包,比如Rhino Java DB JAXP……,并且可以分離的軟件包也都是盡量的分離,但是這大多數都是自由軟件,你可以自己下載加入。

不能使用Java商標:

這個很容易理解,在安裝openjdk的機器上,輸入“java -version”顯示的是openjdk,但是如果是使用Icedtea補丁的openjdk,顯示的是java。(未驗證)

總之,在Java體系中,還是有很多不自由的成分,源代碼的開發不夠徹底,希望Oracle能夠讓JCP更自由開放一些,這也是所有Java社區所希望的。

到這里,基本上明白了java為什么會有開源還是閉源的爭執,也知道了出現誤解的原因。我個人感覺java還是屬于開源的,只是開源的程度沒有達到百分百。

Oracle/Sun JDK里面包含的JVM是HotSpotVM,HotSpot VM只有非常非常少量的功能沒有在OpenJDK里,那部分在Oracle內部的代碼庫里。這些私有部分都不涉及JVM的核心功能。所以說,Oracle/Sun JDK與OpenJDK其實使用的是同一個代碼庫。

從一個Oracle內部員工的角度來看,當他要構建OracleJDK時,他同樣需要先從http://hg.openjdk.java.net簽出OpenJDK,然后從Oracle內部的代碼庫簽出私有的部分,放在OpenJDK代碼下的一個特定目錄里,然后構建。

值得注意的是,Oracle JDK只發布二進制安裝包,而OpenJDK只發布源碼

看完了這篇文章,相信你對java是不是開源的有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永宁县| 专栏| 讷河市| 上犹县| 方正县| 尚志市| 格尔木市| 政和县| 林甸县| 陆丰市| 闻喜县| 黎川县| 张掖市| 宝坻区| 呼伦贝尔市| 宜丰县| 防城港市| 平泉县| 中阳县| 庆元县| 云和县| 阿拉善左旗| 竹山县| 通河县| 科技| 华坪县| 汉川市| 鹰潭市| 孟连| 万盛区| 嘉定区| 吉木萨尔县| 巴青县| 濮阳市| 突泉县| 海兴县| 漯河市| 遵义县| 榆社县| 淳安县| 冷水江市|