回顧第一課中最簡單的程序HelloWorld.java,咱們首先在cmd命令行中進入HelloWorld.java所在的目錄,接着使用javac將HelloWorld.java轉換成HelloWorld.class,而後再使用java運行HelloWorld.class獲得程序的結果。這個過程當中發生了什麼?
在這個過程當中,JAVA的編譯系統首先須要找到javac.exe、java.exe,是javac.exe將HelloWorld.java轉換成HelloWorld.class,java.exe運行HelloWorld.class,而這兩個exe文件在java的安裝目錄下。 java
首先,它找到環境變量CLASSPATH
將Java 或者具備 Java 解釋能力的工具(如瀏覽器)安裝到機器(如PC機)中時,經過操做系統設定的CLASSPATH。
CLASSPATH包含了一個或多個目錄,它們做爲一種特殊的「根」使用,從這裏展開對.class文件的搜索。
從那個根開始,解釋器會尋找包名,並將每一個點號(句點)替換成一個斜槓,從而生成從CLASSPATH根開始的一個路徑名(因此package foo.bar.baz 會變成foo\bar\baz或者foo/bar/baz;具體是正斜槓仍是反斜槓由操做系統決定)。瀏覽器
隨後將它們鏈接到一塊兒,成爲CLASSPATH內的各個條目(入口)。
之後搜索.class文件時,就可從這些地方開始查找與準備建立的類名對應的名字。此外,它也會搜索一些標準目錄——這些目錄與 Java 解釋器駐留的地方有關。工具
使用 JAR文件時要注意一個問題,必須將JAR文件的名字置於類路徑裏,而不單單是它所在的路徑。
因此對一個名爲tonls.jar 的 JAR文件來講,咱們的類路徑須要包括jar文件,以下爲我本身的CLASSPATH,tools.jar和dt.jar的jar文件也包含在CLASSPATH中,而C:\Users\engineer\Desktop\JavaLearning只包含到文件夾:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;C:\Users\engineer\Desktop\JavaLearning;操作系統
理解了java編譯系統尋找文件的機制,便可輕鬆理解package和import的設計,下節課介紹package和import命令行