java環境中的JDK、JVM、JRE
近來小看了下Android,撲面而來一堆概念JDK、JVM、JRE、SDK、NDK、ADT。縷了一下,其中JDK、JVM、JRE是java環境的東西,而SDK、NDK、ADT是Android開發用到的東西。下面來區別一下JDK、JVM、JRE。
小貼士:mac下裝完java後,它在哪裡呢,見下圖
首先來說一下JDK
JDK(Java Development) 是Java 語言的軟體開發工具包(SDK )。
JDK是整個JAVA的核心,包含了Java運行環境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基礎的類別庫(即Java API )。
有以下三種版本:
SE(J2SE),standard edition,標準版,是我們通常使用的一個版本,從JDK 5.0開始,改名為Java SE。
EE(J2EE),enterprise edition,企業版,使用這種JDK開發J2EE應用程序,從JDK 5.0開始,改名為Java EE。
ME(J2ME),micro edition,主要用於行動裝置、嵌入式裝置上的java應用程序,從JDK 5.0開始,改名為Java ME。
再來談談JRE
JRE為Java Runtime Environment的簡稱,Java Runtime Environment(包括Java Plug-in)是Sun的產品,包括兩部分:Java Runtime Environment和Java Plug-in。 JavaRuntimeEnvironment(JRE)是可以在其上執行、測試和傳輸應用程式的Java平台。它包括Java虛擬機器(jvm)、Java核心類別庫和支援檔案。它不包含開發工具(JDK)--編譯器、偵錯器和其它工具。 JRE需要輔助軟體--Java Plug-in--以便在瀏覽器中執行applet。
沒有JDK的話,無法編譯Java程序,但在有JRE環境的系統上可以執行程式。所以當你只需要執行Java程式或Applet,下載並安裝JRE即可。如果你要自行開發 Java軟體,請下載JDK。
最後再來了解一下JVM
JVM即Java Virtual Machine(Java虛擬機),JVM是一種用於計算設備的規範,它是一個虛構出來的計算機,是透過在實際的計算機上模擬模擬各種計算機功能來實現的。
Java語言的一個非常重要的特點就是與平台的無關性。而使用Java虛擬機器是實現此特性的關鍵。一般的高階語言如果要在不同的平台上執行,至少需要編譯成不同的目標程式碼。而引入Java語言虛擬機器後,Java語言在不同平台上執行時不需要重新編譯。 Java語言使用Java虛擬機器屏蔽了與特定平台相關的訊息,使得Java語言編譯程式只需產生在Java虛擬機器上運行的目標程式碼(字節碼),就可以在多種平台上不加修改地運行。 Java虛擬機執行字節碼時,把字節碼解釋成具體平台上的機器指令執行。這就是Java的能夠「一次編譯,到處運行」的原因。
這是三者的關係圖:
我們開發的實際情況是:我們利用JDK(調用JAVA API)開發了屬於我們自己的JAVA程式後,透過JDjava.將我們的文字java檔編譯成JAVA字節碼,在JRE上執行這些JAVA字節碼,JVM解析這些字節碼,映射到CPU指令集或OS的系統呼叫。
JVM(Java Virtual Machine),即Java虛擬機
JVM屏蔽了與特定操作系統平台相關的信息,使Java程序只需生成在Java虛擬機上運行的目標代碼(字節碼),就可以在多種平台上不加修改地運作。 JVM執行字節碼時,實際上最後還是把字節碼解釋成具體平台上的機器指令執行。編譯虛擬機器的指令集與編譯微處理器的指令集非常類似。
JVM是Java語言跨平台(這裡的「平台」是指不同的作業系統)的基礎,要想在不同的作業系統上執行Java程序,就需要在不同作業系統上安裝對應的JVM。所以,JVM有Windows版本、MAC版本、Linux版本等。
JRE(Java Runtime Environment),即Java運行環境
JRE包含Java虛擬機器和Java程式所需的核心類別庫。如果想要執行一個開發好的Java程序,只需要在電腦中安裝JRE即可。
總結:JRE=JVM+Java類別庫
JDK(Java Development Kit),即Java開發工具包
JDK是提供給Java開發人員使用的,包含了JRE和一些Java開發工具,如編譯工具(javac.exe)、打包工具(jar.exe)等。所以安裝了JDK就不需要再安裝JRE了。身為Java語言的學習者,我們必須安裝JDK,沒有JDK,我們是沒有辦法編譯和執行Java程式碼的,這也是幾乎所有的Java入門教學推薦我們安裝JDK的原因。
總結:JDK=JRE+Java開發工具
感謝閱讀,希望能幫助大家,謝謝大家對本站的支持!
更多java環境中的JDK、JVM、JRE詳細介紹相關文章請關注PHP中文網!