這個問題,其實打從我接觸java 開始就一直困擾著我。到現在總算是有點自己的見解(不對的地方以后有什么見解再更正):
JDK:Java Development Kit,java開發工具包。這個包是java的開發人員使用的軟件開發包(SDK: Software Development Kit)。這里包含了很多開發工具庫,如:函數庫、編譯程序。
JRE:Java Runtime Kit, java的運行環境。主要是給java程序的使用者用的。
當你安裝完JDK,其實就已經安裝了JRE,其中有兩套,一套直接位于java安裝目錄:C:\Program Files\ Java\jre 1.6;另一套在JDK的目錄下:C:\Program Files\ Java\JDK\jre 1.6。前者只是客戶端的運行環境,后者還包含了服務器端。
下面是我摘得一段話,來詮釋我的理解:
“ JRE的地位就象一臺PC機一樣,我們寫好的Win32應用程序需要操作系統幫我們運行,同樣的,我們編寫的Java程序也必須要JRE才能運行。所以當你裝完JDK后,如果分別在硬盤上的兩個不同地方安裝了兩套JRE,那么你可以想象你的電腦有兩臺虛擬的Java PC機,都具有運行Java程序的功能。所以我們可以說,只要你的電腦安裝了JRE,就可以正確運行Java應用程序。”
JVM:Java Virtual Machine,java虛擬機,這個才是java的核心部分。如果說java是一門非常靈巧的語言,它能變幻多樣,橫跨各種平臺,它簡直就像一個精靈的話,那么JVM就是java的靈魂附體。各個平臺的操作系統,SUN都有不同的JVM來應對,所以java就不需要去考慮這些問題了。
下面是一些圖解:

下圖是JVM的原理:

下圖是JDK,JRE,JVM的關系:

JDK:Java Development Kit,java開發工具包。這個包是java的開發人員使用的軟件開發包(SDK: Software Development Kit)。這里包含了很多開發工具庫,如:函數庫、編譯程序。
JRE:Java Runtime Kit, java的運行環境。主要是給java程序的使用者用的。
當你安裝完JDK,其實就已經安裝了JRE,其中有兩套,一套直接位于java安裝目錄:C:\Program Files\ Java\jre 1.6;另一套在JDK的目錄下:C:\Program Files\ Java\JDK\jre 1.6。前者只是客戶端的運行環境,后者還包含了服務器端。
下面是我摘得一段話,來詮釋我的理解:
“ JRE的地位就象一臺PC機一樣,我們寫好的Win32應用程序需要操作系統幫我們運行,同樣的,我們編寫的Java程序也必須要JRE才能運行。所以當你裝完JDK后,如果分別在硬盤上的兩個不同地方安裝了兩套JRE,那么你可以想象你的電腦有兩臺虛擬的Java PC機,都具有運行Java程序的功能。所以我們可以說,只要你的電腦安裝了JRE,就可以正確運行Java應用程序。”
JVM:Java Virtual Machine,java虛擬機,這個才是java的核心部分。如果說java是一門非常靈巧的語言,它能變幻多樣,橫跨各種平臺,它簡直就像一個精靈的話,那么JVM就是java的靈魂附體。各個平臺的操作系統,SUN都有不同的JVM來應對,所以java就不需要去考慮這些問題了。
下面是一些圖解:

下圖是JVM的原理:

下圖是JDK,JRE,JVM的關系:
