1 JDK
JDK(Java Development Kit)是java開發工具包。
在其安裝目錄下面有六個檔案夾、一些描述檔案、一個src.zip壓縮檔案。主要是bin、include、lib、 jre這四個檔案夾起作用
- bin:最主要的是編譯器(javac.exe)
- include:java和JVM互動用的頭檔案
- lib:類庫
- jre:java運作環境(注意:這裡的bin、lib檔案夾和jre裡的bin、lib是不同的)
總的來說JDK是用于java程式的開發,而jre則是隻能運作class而沒有編譯的功能。
JDK是提供給Java開發人員使用的,其中包含了java的開發工具,也包括了JRE。 其中的開發工具包括編譯工具(javac.exe)打包工具(jar.exe)等
2 JRE
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。
是以,在你寫完java程式編譯成.class之後,你可以把這個.class檔案和jre一起打包發給朋友,這樣你的朋友就可以運作你寫的程式了。
3 JVM
JVM(JVM Java Virtual Machine)
JVM就是我們常說的java虛拟機,它是整個java實作跨平台的最核心的部分,所有的java程式會首先被編譯為.class的類檔案,這種類檔案可以在虛拟機上執行,JVM解析這些位元組碼,映射到CPU指令集或OS的系統調用。也就是說class并不直接與機器的作業系統相對應,而是經過虛拟機間接與作業系統互動,由虛拟機将程式解釋給本地系統執行。
可以了解為是一個虛拟出來的計算機,具備着計算機的基本運算方式,它主要負責将java程式生成的位元組碼檔案解釋成具體系統平台上的機器指令,讓具體平台如window運作這些Java程式。
簡單而言:使用JDK開發完成的java程式,交給JRE去運作。