JDK(Java Development Kit)是java開發工具包。java
在其安裝目錄下面有六個文件夾、一些描述文件、一個src.zip壓縮文件。主要是bin、include、lib、 jre這四個文件夾起做用jvm
bin:最主要的是編譯器(javac.exe)工具
include:java和JVM交互用的頭文件開發工具
lib:類庫操作系統
jre:java運行環境(注意:這裏的bin、lib文件夾和jre裏的bin、lib是不一樣的)ip
總的來講JDK是用於java程序的開發,而jre則是隻能運行class而沒有編譯的功能。
JDK是提供給Java開發人員使用的,其中包含了java的開發工具,也包括了JRE。 其中的開發工具包括編譯工具(javac.exe)打包工具(jar.exe)等開發
JRE (Java Runtime Environment) 是指java運行環境。編譯器
主要包括Java虛擬機(JVM Java Virtual Machine)和Java程序所需的核心類庫lib等。虛擬機
光有JVM還不能完成class的執行,由於在解釋class的時候JVM須要調用解釋所須要的類庫lib。在JDK的安裝目錄裏你能夠找到jre目錄,裏面有兩個文件夾bin和lib,在這裏能夠認爲bin裏的就是jvm,lib中則是jvm工做所須要的類庫,而jvm和 lib和起來就稱爲jre。it
因此,在你寫完java程序編譯成.class以後,你能夠把這個.class文件和jre一塊兒打包發給朋友,這樣你的朋友就能夠運行你寫的程序了。
JVM(JVM Java Virtual Machine)JVM就是咱們常說的java虛擬機,它是整個java實現跨平臺的最核心的部分,全部的java程序會首先被編譯爲.class的類文件,這種類文件能夠在虛擬機上執行,JVM解析這些字節碼,映射到CPU指令集或OS的系統調用。也就是說class並不直接與機器的操做系統相對應,而是通過虛擬機間接與操做系統交互,由虛擬機將程序解釋給本地系統執行。 能夠理解爲是一個虛擬出來的計算機,具有着計算機的基本運算方式,它主要負責將java程序生成的字節碼文件解釋成具體系統平臺上的機器指令,讓具體平臺如window運行這些Java程序。 簡單而言:使用JDK開發完成的java程序,交給JRE去運行。