JDK與JRE的關(guān)系和path的作用淺談
對(duì)于JDK與JRE的關(guān)系以及path的配置問(wèn)題首先我們來(lái)看下一些概念:
JDK(Java develop kit ,Java開(kāi)發(fā)套件),JRE(Java runtime environment,Java運(yùn)行時(shí)環(huán)境),JVM(Java virtual machine,Java虛擬機(jī))
- JDK
- ++
- |-----JRE
- ++
- |-------JVM
- |-------
JDK與JRE的關(guān)系以及path的配置中,JRE只是JDK的一個(gè)部分,我們只要擁有了一份JDK就可以進(jìn)行Java程序開(kāi)發(fā)了,而顧名思義,JRE是Java運(yùn)行的時(shí)候所依賴的平臺(tái),JVM則更只是JRE的一個(gè)部分,JRE除了虛擬機(jī)外還提供了眾多鏈接庫(kù),這些庫(kù)會(huì)被JVM在運(yùn)行時(shí)調(diào)用。
我們會(huì)發(fā)現(xiàn)java_home/下有一個(gè)bin文件夾和一個(gè)JRE文件夾,而JRE文件夾下也有一個(gè)bin文件夾,它們一樣嗎?顯然不一樣。
java_home/bin中的工具是sun公司提供給我們一些工具,如java.exe,javac.exe,而jre/bin下的工具是運(yùn)行時(shí)所需的,于是我們可以發(fā)現(xiàn)java_home/bin下有一個(gè)javac.exe,而jre/bin下肯定沒(méi)有javac.exe,這是很容易解釋的。
奇怪的是,Sun公司給我們提供了兩套JRE,稍留意一下我們就會(huì)發(fā)現(xiàn)在裝完JDK,還可以選擇裝一個(gè)JRE,這個(gè)JRE是被默認(rèn)裝到C:\Program Files\Java下的。sun提供兩套JRE是有道理的,如果我們只是想運(yùn)行Java程序,那么去官網(wǎng)下一個(gè)JRE就行了,而無(wú)需拿來(lái)一個(gè)JDK,如果是要開(kāi)發(fā)Java程序那就需要一個(gè)JDK了."JDK里面的工具幾乎都是用Java寫(xiě)的,所以JDK本身就是Java應(yīng)用程序,因此要使用JDK附的工具來(lái)開(kāi)發(fā)Java程序也必須要自行附一套JRE才行,這就是java_home\jre存在的原因,而位于Program File\jre的那套JRE就是拿來(lái)執(zhí)行我們自己寫(xiě)的Java應(yīng)用程序的。不過(guò),兩套中任何一套JRE都可以拿來(lái)執(zhí)行我們所寫(xiě)的Java應(yīng)用程序,可是JDK內(nèi)附的開(kāi)發(fā)工具在預(yù)設(shè)開(kāi)發(fā)工具使用包裝器(.exe)來(lái)啟動(dòng)的情況下,都拿自己支選用java_home\jre".(《Java深度歷險(xiǎn)》)
因此,現(xiàn)在可以明白設(shè)path和classpath的作用了:path是為JDK提供的那些工具設(shè)的,如java.exe,javac.exe,而classpath是為Java程序所用到的庫(kù)文件所設(shè)的,于是path設(shè)成:java_home\bin;而classpath設(shè)為:java_home\jre\lib\rt.jar,如果我們開(kāi)發(fā)的一個(gè)應(yīng)用中用到了非j2se提供的庫(kù)文件,則需將這些文件加到classpath中,比如說(shuō)利用javamail開(kāi)發(fā)一個(gè)郵件應(yīng)用,就應(yīng)該把mail.jar
等文件加到classpath中:java_home\jre\lib\ext\mail.jar;.
如果一臺(tái)PC上裝了幾個(gè)JRE,那么就要注意了,有時(shí)很容易產(chǎn)生問(wèn)題,很可能我們用來(lái)編譯Java程序的javac.exe所相關(guān)的JRE與運(yùn)行程序時(shí)所用的JRE不是一個(gè)版本, 這可能會(huì)產(chǎn)生版本沖突,這可以通過(guò)設(shè)定path變量來(lái)解決。
最后應(yīng)用中的第三方文件應(yīng)該加到j(luò)ava_home\jre\lib\ext下,就像剛才那樣,與Java相關(guān)的安全設(shè)定檔都放置java_home\jre\lib\security。最后擴(kuò)展一點(diǎn),與Java相關(guān)的很多工具的path設(shè)定原則都與上述差不多,比如說(shuō)想安裝一個(gè)Ant,應(yīng)該在path 中這樣設(shè):
- F:\\Ant\apache-ant-1.6.5\bin;
看看bin下有什么就明白這樣做是為了指定命令工具ant所在的目錄。
JDK與JRE的關(guān)系以及path的配置那么就先介紹到這里,那么這些相關(guān)的學(xué)習(xí)在其他文章中還會(huì)滲透。
【編輯推薦】