1. 程式人生 > >open JDK 和 JDK區別

open JDK 和 JDK區別

使用過LINUX的人都應該知道,在大多數LINUX發行版本里,內建或者通過軟體源安裝JDK的話,都是安裝的openjdk,那麼到底什麼是openjdk,它與sun jdk有什麼關係和區別呢?

歷史上的原因是,openjdk是jdk的開放原始碼版本,以GPL協議的形式放出。在JDK7的時候,openjdk已經成為jdk7的主幹開發,sun jdk7是在openjdk7的基礎上釋出的,其大部分原始碼都相同,只有少部分原始碼被替換掉。使用JRL(JavaResearch License,Java研究授權協議)釋出。

至於openjdk6則更是有其複雜的一面,首先是openjdk6是jdk7的一個分支,並且儘量去除Java SE7的新特性,使其儘量的符合Java6的標準。

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

授權協議的不同:
1、openjdk採用GPL V2協議放出,而JDK則採用JRL放出。兩者協議雖然都是開放原始碼的,但是在使用上的不同在於GPL V2允許在商業上使用,而JRL只允許個人研究使用。
2、OpenJDK不包含Deployment(部署)功能:
部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,這些功能在Openjdk中是找不到的。
3、OpenJDK原始碼不完整:
這個很容易想到,在採用GPL協議的Openjdk中,sun jdk的一部分原始碼因為產權的問題無法開放openjdk使用,其中最主要的部份就是JMX中的可選元件SNMP部份的程式碼。因此這些不能開放的原始碼將它作成plug,以供OpenJDK編譯時使用,你也可以選擇不要使用plug。而Icedtea則為這些不完整的部分開發了相同功能的原始碼(OpenJDK6),促使OpenJDK更加完整。
4、部分原始碼用開原始碼替換:
由於產權的問題,很多產權不是SUN的原始碼被替換成一些功能相同的開原始碼,比如說字型柵格化引擎,使用Free Type代替。
5、openjdk只包含最精簡的JDK:
OpenJDK不包含其他的軟體包,比如Rhino Java DB JAXP……,並且可以分離的軟體包也都是儘量的分離,但是這大多數都是自由軟體,你可以自己下載加入。
6、不能使用Java商標:
這個很容易理解,在安裝openjdk的機器上,輸入“java -version”顯示的是openjdk,但是如果是使用Icedtea補丁的openjdk,顯示的是java。(未驗證)
總之,在Java體系中,還是有很多不自由的成分,原始碼的開發不夠徹底,希望Oracle能夠讓JCP更自由開放一些,這也是所有Java社群所希望的。

相關推薦

open JDK JDK區別

使用過LINUX的人都應該知道,在大多數LINUX發行版本里,內建或者通過軟體源安裝JDK的話,都是安裝的openjdk,那麼到底什麼是openjdk,它與sun jdk有什麼關係和區別呢? 歷史上的原因是,openjdk是jdk的開放原始碼版本,以GPL協議

平常使用的JDKOpen JDK有什麼區別

使用過LINUX的人都應該知道,在大多數LINUX發行版本里,內建或者通過軟體源安裝JDK的話,都是安裝的openjdk,那麼到底什麼是openjdk,它與sun jdk有什麼關係和區別呢? 文章目錄 0.簡潔版回答 1.歷史上的原因 2.關於JDK和Ope

Linux上一般會安裝Open JDK,關於OpenJDKJDK區別

下面開始安裝步驟: --------------------------------------------------------------------------第一步-------------------------------------------

JDKJRE的區別

執行 改名 machine 重新 工作 under cep runt error 自身對於JDK和JRE了解不是很深刻,重新學習了下別人對於它倆的認識。 JDK就是Java Development Kit.簡單的說JDK是面向開發人員使用的SDK,它提供了Java的開發環境

jdkjre的區別

library exe thread 編譯 kxml kit snv nvi 電腦安裝 jdk跟eclipse、myeclipse、netbeans等軟件一樣是java語言的開發軟件,只不過jdk沒有像他們那樣的可視化開發界面,需要在cmd下面進行運行才行。至於jre當然是

JRE JDK區別

dex com 軟件 java 授權 jconsole 很多 語言 java基礎 JRE顧名思義是java運行時環境,包含了java虛擬機,java基礎類庫。是使用java語言編寫的程序運行所需要的軟件環境,是提供給想運行java程序的用戶使用的。 JDK顧名思義是j

SDKJDK區別

java語言 單單 沒有 androi android開發 新名字 java開發工具 開發工具 使用 剛開始工作時,還以為兩者是一樣的,只是版本換新給了個新名字罷了。最近又關註到這個問題,才發現自己大錯特錯,故整理了下分享給大家,共勉! jdk,是Java開發工具包,主要用

JDK 6JDK 7的substring()方法的區別

val 執行 println out 方法 substr tps ima pub 原文鏈接:https://www.programcreek.com/2013/09/the-substring-method-in-jdk-6-and-jdk-7/ 在JDK 6和JDK 7

Ubuntu下安裝JDKOpen Jdk

ins blog comm acl alter config openjdk-7 all literal 默認JDK 安裝: sudo apt-get update sudo apt-get install default-jre Oracle JDK 安裝: 1、設

JVM JRE JDK三者的區別聯系

基本上 聲明 asc 避免 awt 核心 jdk 不用 如果 一、 詳細介紹1、JVM -- java virtual machineJVM就是我們常說的java虛擬機,它是整個java實現跨平臺的 最核心的部分,所有的java程序會首先被編譯為.class的類文件,這種類

JAVA學習筆記系列3-JVM、JREJDK區別

JVM(Java Virtual Machine)就是一個虛擬的用於執行bytecode位元組碼的“虛擬計算機”。它和os打交道 JRE(Java Runtime Environment)包含:Java虛擬機器、庫函式、執行java應用程式所必須的檔案。它包含了JVM JDK(Java Developme

jdkjre的區別

這個問題其實一直困擾了我很久。我也查閱了很多相關的資料,今天打算總結一下。 jre是執行環境,如果你只想執行你java程式,就只要裝jre就可以 SDK是java的開發工具包 是讓你開發java程式,並讓其執行使用的,它包括了jre,javac.exe,java.exe,等一系統的開

Java中JDKJRE的區別

JDK是Java的開發工具,是提供給程式設計師使用的。它不僅提供了Java程式執行所需的JRE,還提供了一系列的編譯,執行等工具,如javac,java,javaw等。 JRE只是Java程式的執行環境,它最核心的內容就是JVM(Java虛擬機器)及核心類庫,是提供給想執行

JREJDK區別

1. 定義 JRE(Java Runtime Enviroment)是Java的執行環境。面向Java程式的使用者,而不是開發者。如果你僅下載並安裝了JRE,那麼你的系統只能執行Java程式。JRE是執行Java程式所必須環境的集合,包含JVM標準實現及 Java核心類

【代理模式】jdkcglib動態代理實現的區別

jdk和cglib動態代理實現的區別 1、jdk動態代理生成的代理類和委託類實現了相同的介面; 2、cglib動態代理中生成的位元組碼更加複雜,生成的代理類是委託類的子類,且不能處理被final關鍵字

JDKJRE的區別與聯絡

從兩者的全稱可以明白JRE(JavaDevelopment Kit)java程式的執行環境,JDK(JavaDevelopment Kit)是面向開發人員的,然而JDK不僅提供了Java的開發環境,而

openjdkjdk區別與聯絡

使用過LINUX的人都應該知道,在大多數LINUX發行版本里,內建或者通過軟體源安裝JDK的話,都是安裝的openjdk,那麼到底什麼是openjdk,它與sun jdk有什麼關係和區別呢?歷史上的原因是,openjdk是jdk的開放原始碼版本,以GPL協議的形式放出。在J

關於JREJDK區別,終於知道他們的區別

java,從大三上學期就開始接觸,只是前幾堂課翹掉了。導致,一直弄不明白,JDK和JRE的區別是什麼??經過幾年的“鑽研”,“開悟”,我終於明白了。哦哈哈哈JDK,開發java程式用的開發包,JDK裡面有java的執行環境(JRE),包括client和server端的。需要

JDKCGLIB動態代理區別

轉自:https://blog.csdn.net/yhl_jxy/article/details/80635012 一 JDK和CGLIB動態代理原理 1、JDK動態代理 利用攔截器(攔截器必須實現InvocationHanlder)加上反射機制生成一個實現代理介面的匿名類, 在呼叫具體

針對初學者瞭解JVM、JREJDK三者間的區別聯絡

      首先說Java程式語言,它是一門高階程式語言,具體由誰何時建立的,讀者可以到網上查詢相關資料,這裡就不再贅述。那麼,談到Java就不得不談談JVM、JRE和JDK三者間的區別和聯絡。       JVM:英文全稱Java Virtual Machine,字面意思