1. 程式人生 > >jdk和jre的區別。

jdk和jre的區別。

這個問題其實一直困擾了我很久。我也查閱了很多相關的資料,今天打算總結一下。


jre是執行環境,如果你只想執行你java程式,就只要裝jre就可以 SDK是java的開發工具包 是讓你開發java程式,並讓其執行使用的,它包括了jre,javac.exe,java.exe,等一系統的開發工具,也包括了api的原始碼

安裝Java後有jdk和jre兩個資料夾,但jdk下還有一個jre資料夾,而且這個jre比前面那個jre多了server檔案,兩個jre內部封裝的函式差不多 都是實現相同的介面 但是內容卻是不一樣 jdk中的jre是關係程式的編譯虛擬環 層的jre是實現執行時提供的環境.


我們可以做個這樣的實驗:當你安裝java開發環境的時候你會發現系統中有兩套jre,一套在/jre,一套在jdk面。如果你把/jre的給刪了或者移走,你編譯完一個.java檔案之後,想要執行編譯後得到的.class檔案發現會報錯。如圖:


正常情況下沒有刪除/jre則是:


所以這裡做個總結:

jdk裡的jre是服務於javac.exe,java.exe等一系列的開發工具的執行環境。因為javac.exe等是靠java編寫的程式碼編譯工具,而靠java編寫的程式都必須執行在jre之上,所以jdk中也有個jre。而外部的/jre則是給開發完了一個java程式並且經過jdk中的編譯工具在jdk自帶的jre環境下編譯的位元組碼執行的jre。