JDK和兩個JRE

原文: http://renyongjie668.blog.163.com/blog/static/160053120101711162373/



昨晚看到csdn上有人再問jre的東東,突然想起之前一個同窗和我說過,安裝jdk後有兩個jre目錄及他們的區別,如今又仔細梳理了一下,總結一下吧。

JDK就是Java Development Kit.簡單的說JDK是面向開發人員使用的SDK,它提供了Java的開發環境和運行環境。SDK是Software Development Kit 通常指軟件開發包,能夠包括函數庫、編譯程序等。
JRE是Java Runtime Enviroment是指Java的運行環境,是面向Java程序的使用者,而不是開發者。

若是安裝了JDK,會發同你的電腦有兩套JRE,我拿默認的安裝路徑來講,一套位於
D:\Program Files\Java\jdk1.6.0_02 \jre,另一套位於 D:\Program Files\Java\jre1.6.0_02 目錄下,後面這套比前面那套少了Server端的Java虛擬機,不過直接將前面那套的Server端Java虛擬機複製過來就好了。並且在安裝JDK可 以選擇是否安裝這個位於D:\Program Files\Java目錄下的JRE。若是你只安裝JRE,而不是JDK,那麼只會在 C:\Program Files\Java 目錄下安裝惟一的一套JRE。這是正常現象,安裝好後設置好路徑就能夠用了。

兩套 jre ,是針對不一樣的工做職責!不一樣的 jre 負責各自範圍的內容。
當用戶只須要執行 java 的程序時,那麼D:\Program Files\Java\jre1.6.0_02 的 jre 就 ok !
當 用戶是 java 程序員,則須要 java 開發環境。編譯時,系統就會優先去找D:\Program Files\Java\jdk1.6.0_02\bin下的「 java 、 javac 」這些命令所在目錄或者他們的父目錄的 jre 。即開發環境下運行的是 jdk 下的 jre 。

三個lib目錄,lib文件夾的位置以下:
        D:\Program Files\Java\jdk1.6.0_02\jre\lib
        D:\Program Files\Java\jre1.6.0_02\lib
        D:\Program Files\Java\jdk1.6.0_02\lib
    分別爲jdk下的lib;jre下的lib;jdk下的jre下的lib。
JDK下的lib包括java開發環境的jar包,是給JDK用的,例如JDK下有一些工具,可能要用該目錄中的文件。例如,編譯器等。
JRE下的lib只是運行java程序的jar包,是爲JVM運行時候用的。包括全部的標準類庫,和擴展類。
JDK下的JRE下的lib是開發環境中,運行時須要的jar包,最典型的就是導入的外部驅動jar包。由於編譯時,系統找的是jdk下的jre。而不是最外層的jre。
-----------------------------------------
    最後在這裏補充幾點:
    1. 在使用Eclipse的時候不須要指定的CLASSPATH,Eclipse會本身搜索.
    2. 獨立目錄下的jre是通用jre,安裝時是可選的(選擇了,則會覆蓋已有版本)。jdk目錄下的jre則是必須的。若是你在eclipse裏指定jdk的 路徑(jre的路徑不用你指定,會本身去找的),那麼用的就是這個jre。而java, web, start等,用的則是通用jre。

參考文檔:
http://www.cnblogs.com/suyang/archive/2008/03/12/1101330.html
相關文章
相關標籤/搜索