JDK的最詳細的安裝教程 環境變量詳解 JDK的最詳細的安裝教程

JDK的最詳細的安裝教程

 

環境變量詳解

JAVA_HOME

  • 變量名:JAVA_HOME
    變量值:C:\develop\Java\jdk1.8.0_191
    用途:定義一個變量,供其他地方使用

Path

  • 變量名:Path
    變量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
    用途:讓系統在任何路徑下都可以識別java、javac、javap等命令

CLASSPATH

  • 變量名:CLASSPATH
    變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
    用途:告訴jvm要使用或執行的class放在什麼路徑上,便於JVM加載class文件,.;表示當前路徑,tools.jar和dt.jar爲類庫路徑

CLASSPATH詳解

      • tools.jar
        工具類庫(編譯和運行等),它跟我們程序中用到的基礎類庫沒有關係。我們注意到在Path中變量值bin目錄下的各個exe工具的大小都很小,一般都在27KB左右,這是因爲它們實際上僅僅相當於是一層代碼的包裝,這些工具的實現所要用到的類庫都在tools.jar中,用壓縮軟件打開tools.jar,你會發現有很多文件是和bin目錄下的exe工具相對性的。當然,如果tools.jar的功能只有這些的話,那麼我們根本不用把它加入到CLASSPATH變量中,因爲bin目錄下的工具自己可以完成對這些類庫的調用,因此tools.jar應該還有其他的功能。在裏面還可以看到有Applet和RMI等相關的文件,因此tools.jar應該還是遠程調用等必須的jar包。tools.jar的其他作用可以查看其他資料。

      • dt.jar
        運行環境類庫,主要是Swing包,這一點通過用壓縮軟件打開dt.jar也可以看到。如果在開發時候沒有用到Swing包,那麼可以不用將dt.jar添加到CLASSPATH變量中。
        CLASSPATH中的類庫是由Application ClassLoader或者我們自定義的類加載器來加載的,這裏當然不能包括基礎類庫,如果包括基礎類庫的話,並用兩個不同的自定義類加載器去加載該基礎類,那它得到的該基礎類就不是唯一的了,這樣便不能保證Java類的安全性。

      • 基本類庫和擴展類庫rt.jar
        基本類庫是所有的 import java.* 開頭的類,在 %JAVA_HOME%\jre\lib 目錄下(如其中的 rt.jar、resource.jar ),類加載機制提到,該目錄下的類會由 Bootstrap ClassLoader 自動加載,並通過親委派模型保證了基礎類庫只會被Bootstrap ClassLoader加載,這也就保證了基礎類的唯一性。

      • 擴展類庫是所有的 import javax.* 開頭的類,在 %JAVA_HOME%\jre\lib\ext 目錄下,該目錄下的類是由Extension ClassLoader 自動加載,不需要我們指定。

        rt.jar 默認就在根ClassLoader的加載路徑裏面,放在CLASSPATH也是多此一舉。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章