一、爲何要設置classPath?
用於通知JVM Java基礎類庫的位置。classPath告訴類裝載器去哪裏尋找第三方類庫
自JDK1.5以後便不須要再配置這個變量了java
二、爲何安裝兩個JRE(JDK裏帶一個、和JDK同級目錄下還有一個JRE)
JDK下的JRE主要是用來開發的,單的的JRE是在程序運行時使用的
JDK包含了全部用於開發的組件,天然須要JRE輔助開發,
而JRE着僅僅是Java的運行環境,用於執行.class文件
單獨的JRE少了Server端的Java虛擬機
JDK是面向開發者,JRE是面向使用者
開發者工具包裏包含運行環境是必須的,
而開發者做爲程序的第一個使用者,安裝一套完整獨立的運行環境好像也沒有什麼疑問!!!
工具
注:一下爲猜想,截止文章編寫時未作驗證,正確與否待驗證spa
若是須要引用別人開發好的類庫而拿到的是編譯過的.class文件(非.java源文件),則在編譯時就要用到JDK文件夾裏的那套JRE了命令行
在控制檯執行 javac 命令編譯源文件時是在JDK裏面執行的,與外部JER無關blog
在控制檯執行 java 命令執行程序時使用的是單獨的JRE(非JDK文件夾裏的JRE)開發
如有不一樣的理解歡迎留言!!謝謝虛擬機
當日補充編譯
(關於JAVA_HOME和Path環境變量的解釋)class
Path環境變量是一個Windows系統下的路徑引用變量(這麼說可能不太容易理解,往下看)基礎
其實說的簡單點,就是當你在命令行和 電腦的運行界面(:)輸入各類命令時,Windows系統都會去當前目錄和Path變量下的路徑中尋找對應的命令。
好比在運行窗口輸入notepad打開電腦的記事本,系統就會在上訴兩個路徑下尋找notepad.exe程序去執行,因此能夠打開記事本。
咱們作個實驗:我把桌面的路徑添加到Path環境變量裏(最後一行變量),而後在運行界面輸入「騰訊QQ」執行就能夠打開QQ(桌面有QQ的啓動快捷方式)。
爲JDK配置環境變量就是這個原理。
因此咱們才能夠在任何路徑下執行JAVA命令(若是沒有配置JDK的環境變量,也是能夠用的,由於系統也會在命令行當前所在目錄下尋找匹配的命令,若是你不嫌這樣繁瑣的話,你就這麼幹吧!!!)
至於JAVA_HOME變量,僅僅是至關於一個宏替換,和直接在Path裏這樣寫:是同樣的。。。
禁止轉載-----必究
張巖
2017-07-27