JRE和JDK的區(qū)別和聯(lián)系
2016-01-18 12:56:08
11165
Jdk 是java development kit,是java的開發(fā)工具包,里面包含了各種類庫(kù)和工具。當(dāng)然也包括了另外一個(gè)Jre. 那么為什么要包括另外一個(gè)Jre呢?
而且jdk/jre/bin同時(shí)有client和server兩個(gè)文件夾下都包含一個(gè)jvm.dll。說明是有兩個(gè)虛擬機(jī)的。
Jre 是java runtime environment, 是java程序的運(yùn)行環(huán)境。既然是運(yùn)行,當(dāng)然要包含jvm,也就是大家熟悉的虛擬機(jī)啦,還有所有java類庫(kù)的class文件,
都在lib目錄下打包成了jar。大家可以自己驗(yàn)證。至于在windows上的虛擬機(jī)是哪個(gè)文件呢?學(xué)過MFC的都知道什么是dll文件吧,那么大家看看jre/bin/client里面是不是有一個(gè)jvm.dll呢?那就是虛擬機(jī)。
記得在環(huán)境變量path中設(shè)置jdk/bin路徑麼?不設(shè)置的話javac和java是用不了的。
設(shè)置環(huán)境變量:我的電腦右鍵-屬性-高級(jí)-環(huán)境變量-系統(tǒng)變量(新建JAVA_HOME,CATALINA_HOME,CLASSPATH 直接編輯PATH)
JAVA_HOME 變量值為: D:Javajdk1.5.0_11
若是JDK+TOMCAT安裝與配置則
CATALINA_HOME 變量值為: D: omcat5.5.20
CLASSPATH 變量值為: .;%JAVA_HOME%lib ools.jar;%JAVA_HOME%libdt.jar;%CATALINA_HOME%commonlib;
PATH 在變量值的尾部添加: ;%JAVA_HOME%in;%CATALINA_HOME%in;
確實(shí)jdk/bin目錄下包含了所有的命令,但是我們用的java命令并不是 jdk/bin目錄下的而是jre/bin目錄下的。
簡(jiǎn)單的說JDK是面向開發(fā)人員使用的SDK,它提供了Java的開發(fā)環(huán)境和運(yùn)行環(huán)境。SDK是Software Development Kit 一般指軟件開發(fā)包,可以包括函數(shù)庫(kù)、編譯程序等。
JRE是Java Runtime Enviroment是指Java的運(yùn)行環(huán)境,是面向Java程序的使用者,而不是開發(fā)者。
JRE的地位就象一臺(tái)PC機(jī)一樣,我們寫好的 Win32應(yīng)用程序需要操作系統(tǒng)幫我們運(yùn)行,同樣的,我們編寫的Java程序也必須要JRE才能運(yùn)行。
所以當(dāng)你裝完JDK后,如果分別在硬盤上的兩個(gè)不同地方安裝了兩套JRE,那么你可以想象你的電腦有兩臺(tái)虛擬的Java PC機(jī),都具有運(yùn)行Java程序的功能。
所以我們可以說,只要你的電腦安裝了JRE,就可以正確運(yùn)行Java應(yīng)用程序。