JDK和JRE的區別與聯繫

從兩者的全稱可以明白JRE(JavaDevelopment Kit)java程序的運行環境,JDK(JavaDevelopment Kit)是面向開發人員的,然而JDK不僅提供了Java的開發環境,而且內部包括一個JRE,即是也提供了運行環境。在安裝完JDK後,會發現在Java目錄下包含了一個jre,和jdk;在jdk中又包含了一個jre,兩個jre均可以提供java的運行環境,只是不同的程序會選擇不同的jre來運行Java程序。

1、下面講一下JDK中爲什麼要再加一個jre?

在JDK中lib目錄下有個jar文件tools.jar ,在tools.jar中包含了很多用Java編寫的開發工具,(如javac.exejar.exe等)。而這些開發工具在運行的時候也需要java運行環境。

Java目錄下的那套JRE就是用來運行一般Java程序用的,jdk內部的一些開發工具一般會運行在jdk目錄下的jre環境。

2、那麼誰來決定java應用程序將使用哪個jre來運行呢?

Java.exe的工作就是找到合適的JRE來運行 Java程序。 Java.exe依照如下的順序來查找響應的JRE:自己的目錄下有沒有JRE;父目錄有沒有JRE;查詢註冊表: [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JavaRuntime Environment] 所以java.exe的運行結果與你的電腦裏面哪個JRE被執行有很大的關係。

3、一個java應用程序的執行過程是怎樣呢?

首先通過JDK中的編譯程序(javac)將我們的文本java文件編譯成JAVA字節碼,然後在JRE上運行這些JAVA字節碼,JVM解析這些字節碼,映射到CPU指令集或OS的系統調用。

可以參考下圖來理解:





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