下載JDK


安裝JDK
安裝JDK時(shí),除了修改安裝目錄,其他的一路【下一步】,傻瓜式安裝。
注:當(dāng)提示安裝JRE時(shí),可以選擇不要安裝。因?yàn)镴DK已經(jīng)自帶了JRE。
安裝JDK

配置環(huán)境變量
-
單擊"計(jì)算機(jī)-屬性-高級(jí)系統(tǒng)設(shè)置",單擊"環(huán)境變量"。
系統(tǒng)屬性 -
新建->變量名"JAVA_HOME",變量值"C:\develop\Java\jdk1.8.0_191"(即JDK的安裝路徑)
新建環(huán)境變量 -
編輯->變量名"Path",點(diǎn)擊"新建",然后輸入上"%JAVA_HOME%\bin",點(diǎn)擊"確定",再次點(diǎn)擊"新建",然后輸入上"%JAVA_HOME%\jre\bin",點(diǎn)擊確定。
新建環(huán)境變量 -
新建->變量名"CLASSPATH",變量值".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar"
新建環(huán)境變量
測(cè)試JDK是否安裝成功
在配置好環(huán)境變量后,可以進(jìn)入cmd中檢查Java是否安裝正確,檢查的命令為 java -version
-
JDK安裝成功
測(cè)試JDK是否安裝成功
環(huán)境變量詳解
JAVA_HOME
- 變量名:JAVA_HOME
變量值:C:\develop\Java\jdk1.8.0_191
用途:定義一個(gè)變量,供其他地方使用
Path
- 變量名:Path
變量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
用途:讓系統(tǒng)在任何路徑下都可以識(shí)別java、javac、javap等命令
CLASSPATH
- 變量名:CLASSPATH
變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
用途:告訴jvm要使用或執(zhí)行的class放在什么路徑上,便于JVM加載class文件,.;表示當(dāng)前路徑,tools.jar和dt.jar為類(lèi)庫(kù)路徑
CLASSPATH詳解
tools.jar
工具類(lèi)庫(kù)(編譯和運(yùn)行等),它跟我們程序中用到的基礎(chǔ)類(lèi)庫(kù)沒(méi)有關(guān)系。我們注意到在Path中變量值bin目錄下的各個(gè)exe工具的大小都很小,一般都在27KB左右,這是因?yàn)樗鼈儗?shí)際上僅僅相當(dāng)于是一層代碼的包裝,這些工具的實(shí)現(xiàn)所要用到的類(lèi)庫(kù)都在tools.jar中,用壓縮軟件打開(kāi)tools.jar,你會(huì)發(fā)現(xiàn)有很多文件是和bin目錄下的exe工具相對(duì)性的。當(dāng)然,如果tools.jar的功能只有這些的話,那么我們根本不用把它加入到CLASSPATH變量中,因?yàn)閎in目錄下的工具自己可以完成對(duì)這些類(lèi)庫(kù)的調(diào)用,因此tools.jar應(yīng)該還有其他的功能。在里面還可以看到有Applet和RMI等相關(guān)的文件,因此tools.jar應(yīng)該還是遠(yuǎn)程調(diào)用等必須的jar包。tools.jar的其他作用可以查看其他資料。dt.jar
運(yùn)行環(huán)境類(lèi)庫(kù),主要是Swing包,這一點(diǎn)通過(guò)用壓縮軟件打開(kāi)dt.jar也可以看到。如果在開(kāi)發(fā)時(shí)候沒(méi)有用到Swing包,那么可以不用將dt.jar添加到CLASSPATH變量中。
CLASSPATH中的類(lèi)庫(kù)是由Application ClassLoader或者我們自定義的類(lèi)加載器來(lái)加載的,這里當(dāng)然不能包括基礎(chǔ)類(lèi)庫(kù),如果包括基礎(chǔ)類(lèi)庫(kù)的話,并用兩個(gè)不同的自定義類(lèi)加載器去加載該基礎(chǔ)類(lèi),那它得到的該基礎(chǔ)類(lèi)就不是唯一的了,這樣便不能保證Java類(lèi)的安全性。基本類(lèi)庫(kù)和擴(kuò)展類(lèi)庫(kù)rt.jar
基本類(lèi)庫(kù)是所有的 import java.* 開(kāi)頭的類(lèi),在 %JAVA_HOME%\jre\lib 目錄下(如其中的 rt.jar、resource.jar ),類(lèi)加載機(jī)制提到,該目錄下的類(lèi)會(huì)由 Bootstrap ClassLoader 自動(dòng)加載,并通過(guò)親委派模型保證了基礎(chǔ)類(lèi)庫(kù)只會(huì)被Bootstrap ClassLoader加載,這也就保證了基礎(chǔ)類(lèi)的唯一性。-
擴(kuò)展類(lèi)庫(kù)是所有的 import javax.* 開(kāi)頭的類(lèi),在 %JAVA_HOME%\jre\lib\ext 目錄下,該目錄下的類(lèi)是由Extension ClassLoader 自動(dòng)加載,不需要我們指定。
rt.jar 默認(rèn)就在根ClassLoader的加載路徑里面,放在CLASSPATH也是多此一舉。




