關於JDK和JRE

JRE   java   runtime   environment,   java程序的運行環境。既然是運行,當然要包含jvm,也就是大家熟悉的虛擬機啦,   還有所有java類庫的class文件,都在lib目錄下打包成了jar。大家可以自己驗證。至於在windows上的虛擬機是哪個文件呢?   jre/bin/client裏面是不是有一個jvm.dll呢?那就是虛擬機。

        JDK   java  development   kit,是java的開發工具包,裏面包含了各種類庫和工具。當然也包括了另外一個Jre.     那麼爲什麼要包括另外一個Jre呢?而且jdk/jre/bin同時有clientserver兩個文件夾下都包含一個jvm.dll   說明是有兩個虛擬機的。這一點不知道大家是否注意到了呢?

       相信大家都知道jdkbin下有各種java程序需要用到的命令,與jrebin目錄最明顯的區別就是jdk下才有javac,這一點很好理解,因爲 jre只是一個運行環境而已,與開發無關,正因爲如此,具備開發功能的jdk自己的jre下才會同時有client性質的jvmserver性質的 jvm   而僅僅作爲運行環境的jre下只需要client性質的jvm.dll就夠了。

       記得在環境變量path中設置jdk/bin路徑麼?這應該是大家學習Java的第一步吧,   老師會告訴大家不設置的話javacjava是用不了的。確實jdk/bin目錄下包含了所有的命令。可是有沒有人想過我們用的java命令並不是 jdk/bin目錄下的而是jre/bin目錄下的呢?不信可以做一個實驗,大家可以把jdk/bin目錄下的java.exe剪切到別的地方再運行 java程序,發現了什麼?一切OK

      
那麼有人會問了?我明明沒有設置jre/bin目錄到環境變量中啊?

試想一下如果java爲了提供給大多數人使用,他們是不需要jdk做開發的,只需要jre能讓java程序跑起來就可以了,那麼每個客戶還需要手動去設置環境變量多麻煩啊?所以安裝jre的時候安裝程序自動幫你把jrejava.exe添加到了系統變量中,驗證的方法很簡單,去Windows/system32下面去看看吧,發現了什麼?有一個java.exe

發佈了28 篇原創文章 · 獲贊 48 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章