jvm,jre以及jdk三者之間的關係?

JDK


JDK是java開發工具包,在其安裝目錄下面有六個文件夾、一些描述文件、一個src壓縮文件。bin、include、lib、 jre這四個文件夾起作用,demo、sample是一些例子。可以看出來JDK包含JRE,而JRE包含JVM。
bin:最主要的是編譯器(javac.exe)
include:java和JVM交互用的頭文件
lib:類庫
jre:java運行環境(注意:這裏的bin、lib文件夾和jre裏的bin、lib是不同的)
總的來說JDK是用於java程序的開發,而jre則是隻能運行class而沒有編譯的功能。 
JDK是提供給Java開發人員使用的,其中包含了java的開發工具,也包括了JRE。所以安裝了JDK,就不用在單獨安裝JRE了。 其中的開發工具包括編譯工具(javac.exe)打包工具(jar.exe)等


JRE


JRE是指java運行環境。光有JVM還不能成class的執行,因爲在解釋class的時候JVM需要調用解釋所需要的類庫lib。在JDK的安裝目錄裏你可以找到jre目錄,裏面有兩個文件夾bin和lib,在這裏可以認爲bin裏的就是jvm,lib中則是jvm工作所需要的類庫,而jvm和 lib和起來就稱爲jre。所以,在你寫完java程序編譯成.class之後,你可以把這個.class文件和jre一起打包發給朋友,這樣你的朋友就可以運行你寫程序了。 
包括Java虛擬機(JVM Java Virtual Machine)和Java程序所需的核心類庫等, 
如果想要運行一個開發好的Java程序,計算機中只需要安裝JRE即可。 


 JVM


JVM就是我們常說的java虛擬機,它是整個java實現跨平臺的最核心的部分,所有的java程序會首先被編譯爲.class的類文件,這種類文件可以在虛擬機上執行,也就是說class並不直接與機器的操作系統相對應,而是經過虛擬機間接與操作系統交互,由虛擬機將程序解釋給本地系統執行。 
可以理解爲是一個虛擬出來的計算機,具備着計算機的基本運算方式,它主要負責將java程序生成的字節碼文件解釋成具體系統平臺上的機器指令。讓具體平臺如window運行這些Java程序。 


簡單而言:使用JDK開發完成的java程序,交給JRE去運行。 


三者之間關係 
JDK 包含JRE,JRE包含JVM。

我們開發的實際情況是:我們利用JDK(調用JAVA API)開發了屬於我們自己的JAVA程序後,通過JDK中的編譯程序(javac)將我們的文本java文件編譯成JAVA字節碼,在JRE上運行這些JAVA字節碼,JVM解析這些字節碼,映射到CPU指令集或OS的系統調用。

 


--------------------- 
作者:行走的歌聲 
來源:CSDN 
原文:https://blog.csdn.net/qq_26653067/article/details/79728974 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章