為了學(xué)習(xí)數(shù)據(jù)庫,重裝了系統(tǒng),之前前一直在用eclipse,現(xiàn)在準(zhǔn)備換成myeclipse,這之前當(dāng)然需要重新設(shè)置環(huán)境變量,順手寫下有關(guān)jdk、jre與jvm的區(qū)別與聯(lián)系以供交流參考。
首先來說一下JDK
JDK(Java Development Kit) 是 Java 語言的軟件開發(fā)工具包(SDK)。
JDK是整個JAVA的核心,包括了Java運行環(huán)境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基礎(chǔ)的類庫(即Java API )。
有以下三種版本:
SE(J2SE),standard edition,標(biāo)準(zhǔn)版,是我們通常用的一個版本,從JDK 5.0開始,改名為Java SE。
EE(J2EE),enterprise edition,企業(yè)版,使用這種JDK開發(fā)J2EE應(yīng)用程序,從JDK 5.0開始,改名為Java EE。
ME(J2ME),micro edition,主要用于移動設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序,從JDK 5.0開始,改名為Java ME。
再來談?wù)凧RE
JRE為Java Runtime Environment的簡稱,Java Runtime Environment(包括Java Plug-in)是Sun的產(chǎn)品,包括兩部分:Java Runtime Environment和Java Plug-in。JavaRuntimeEnvironment(JRE)是可以在其上運行、測試和傳輸應(yīng)用程序的Java平臺。它包括Java虛擬機(jvm)、Java核心類庫和支持文件。它不包含開發(fā)工具(JDK)--編譯器、調(diào)試器和其它工具。JRE需要輔助軟件--Java Plug-in--以便在瀏覽器中運行applet。
沒有JDK的話,無法編譯Java程序,但在有JRE環(huán)境的系統(tǒng)上可以運行程序。所以當(dāng)你只需要運行Java程序或Applet,下載并安裝JRE即可。如果你要自行開發(fā) Java軟件,請下載JDK。
最后再來了解一下JVM
JVM即Java Virtual Machine(Java虛擬機),JVM是一種用于計算設(shè)備的規(guī)范,它是一個虛構(gòu)出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現(xiàn)的。
Java語言的一個非常重要的特點就是與平臺的無關(guān)性。而使用Java虛擬機是實現(xiàn)這一特點的關(guān)鍵。一般的高級語言如果要在不同的平臺上運行,至少需要編譯成不同的目標(biāo)代碼。而引入Java語言虛擬機后,Java語言在不同平臺上運行時不需要重新編譯。Java語言使用Java虛擬機屏蔽了與具體平臺相關(guān)的信息,使得Java語言編譯程序只需生成在Java虛擬機上運行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺上不加修改地運行。Java虛擬機在執(zhí)行字節(jié)碼時,把字節(jié)碼解釋成具體平臺上的機器指令執(zhí)行。這就是Java的能夠“一次編譯,到處運行”的原因。
這是三者的關(guān)系圖:
我們開發(fā)的實際情況是:我們利用JDK(調(diào)用JAVA API)開發(fā)了屬于我們自己的JAVA程序后,通過JDK中的編譯程序(javac)將我們的文本java文件編譯成JAVA字節(jié)碼,在JRE上運行這些JAVA字節(jié)碼,JVM解析這些字節(jié)碼,映射到CPU指令集或OS的系統(tǒng)調(diào)用。
JVM(Java Virtual Machine),即Java虛擬機
JVM屏蔽了與具體操作系統(tǒng)平臺相關(guān)的信息,使Java程序只需生成在Java虛擬機上運行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺上不加修改地運行。JVM在執(zhí)行字節(jié)碼時,實際上最終還是把字節(jié)碼解釋成具體平臺上的機器指令執(zhí)行。編譯虛擬機的指令集與編譯微處理器的指令集非常類似。
JVM是Java語言跨平臺(這里的“平臺”是指不同的操作系統(tǒng))的基礎(chǔ),要想在不同的操作系統(tǒng)上運行Java程序,就需要在不同操作系統(tǒng)上安裝對應(yīng)的JVM。所以,JVM有Windows版本、MAC版本、Linux版本等。
JRE(Java Runtime Environment),即Java運行環(huán)境
JRE包括Java虛擬機和Java程序所需的核心類庫。如果要想運行一個開發(fā)好的Java程序,只需要在計算機中安裝JRE即可。
總結(jié):JRE=JVM+Java類庫
JDK(Java Development Kit),即Java開發(fā)工具包
JDK是提供給Java開發(fā)人員使用的,包含了JRE和一些Java開發(fā)工具,如編譯工具(javac.exe)、打包工具(jar.exe)等。所以安裝了JDK就不需要再安裝JRE了。
作為Java語言的學(xué)習(xí)者,我們必須安裝JDK,沒有JDK,我們是沒有辦法編譯和運行Java代碼的,這也是幾乎所有的Java入門教程推薦我們安裝JDK的原因。
總結(jié):JDK=JRE+Java開發(fā)工具
如何作出選擇
選擇的標(biāo)準(zhǔn)是按需選擇,如果我們僅僅想運行現(xiàn)成的Java程序,安裝JRE即可;如果我們想開發(fā)Java程序,必須安裝JDK。