新聞中心
你對JDK,JRE,JVM的關(guān)系是否了解,JDK是SUN公司發(fā)布的用于開發(fā)Java程序的工具包,JRE相當(dāng)于PC,各種Java類庫(通常使用Java編寫)相當(dāng)于PC上的操作系統(tǒng),而JVM是Java虛擬機(jī),在window下作為動態(tài)連接庫(jvm.dll)存在,用于解釋執(zhí)行Java字節(jié)碼。

在湘鄉(xiāng)等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、成都網(wǎng)站制作 網(wǎng)站設(shè)計制作按需定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站建設(shè),湘鄉(xiāng)網(wǎng)站建設(shè)費用合理。
JDK,JRE,JVM的關(guān)系
JDK(JavadevelopmemtKit):
是SUN公司發(fā)布的用于開發(fā)Java程序的工具包,在它的bin目錄下有很多工具,常見的包括:javac.exe,java.exe,javadoc.exe等(其中有很多都是用Java編寫的)各種版本的IDE工具也是需要使用JDK來完成編譯,打包,運行等各種功能的。
JRE(JavaRuntimeEnvironment):
顧名思義,java的運行環(huán)境,而JDK是開發(fā)工具,在它的安裝目錄下包含了JRE目錄,其實在安裝JDK時(1.4版本以上),有一個安裝選項,如果勾上時,在Java的安裝目錄下會多一個JRE目錄,這里的JRE與JDK下的JRE目錄基本上是完全一致的,那么為什么需要兩個JRE呢?
前面已經(jīng)提到過,JDK的bin目錄下的很多工具都是用Java編寫的,使用這些工具的時候也是需要運行環(huán)境的,通過這些.exe包裝器(這些包裝器提供了尋找tools.jar中的一些java類的快捷方法,不需要輸入一長串的包名和類名)來使用那些工具時,java會自動尋找父目錄下的JRE,所以在這里放置了JRE。
JVM(JavaVirtureMatchine):
Java虛擬機(jī),在window下作為動態(tài)連接庫(jvm.dll)存在,用于解釋執(zhí)行Java字節(jié)碼。在同一個版本的JRE中,虛擬機(jī)也有不同版本,如Client,Server之分。
三者的關(guān)系可以與PC,操作系統(tǒng),硬件之間的關(guān)系做比較:
JRE相當(dāng)于PC,各種Java類庫(通常使用Java編寫)相當(dāng)于PC上的操作系統(tǒng),可以方便的操作硬件資源,而Java中的原生類庫(通常使用C編寫)相當(dāng)于Windows操作系統(tǒng)中的win32API,而JVM就相當(dāng)于PC中的硬件了,負(fù)責(zé)運行和計算。而JDK只是一個編寫各種程序或者Java類庫的工具。
平時我們一般只要知道:在輸入java-version命令時,如果在系統(tǒng)PATH下存在java.exe這個可執(zhí)行文件,在命令行中會得到相應(yīng)Java的版本信息,如果沒有則會報錯。但是它在尋找對應(yīng)的JRE時,其實另有一段隱情:
1.首先它會尋找自己目錄下的JRE
2.尋找父目錄下的JRE
3.尋找注冊表中HKEY_LOCAL_MACHINE\Software\JavaSoft\Java\RuntimeEnvironment\(相應(yīng)版本)的值所指定的JRE,一般為Java目錄下JRE(非JDK目錄下的JRE)。
本文標(biāo)題:揭露JDK,JRE,JVM三者不為人知的隱情
文章起源:http://fisionsoft.com.cn/article/cccsdpp.html


咨詢
建站咨詢
