今天讀了JAVA2核心技術第1卷:基礎知識中的第4章,對其中的package的使用有些感悟與理解。
寫了兩個類PackageTest、Employee。PackageTest在默認包,Employee在com.horstmann.corejava包中。PackageTest中引用Employee類。
基路徑F:/JavaProgram/packagetest。
F:/
JavaProgram/
packagetest/
com/
horstmann/
corejava/
Employee.java
Employee.class
PackageTest.java
以上是目錄路徑(雖然難看,能看懂就行了)
在命令行中敲入:
F:/JavaProgram/packagetest>javac com/horstmann/corejava/Employee.java
F:/JavaProgram/packagetest>javac packagetest.java
F:/JavaProgram/packagetest>java PackageTest
運行成功了。
關於classpath的講解:
類路徑所列出的目錄和歸檔文件是搜尋類的起始點,下面看一個類路徑示例:
/home/user/classdir;.;/home/user/archives/archive.jar
假設解釋器要搜尋com.horstmann.corejava.Employee類文件。他首先要查看存儲在jre/lib和jre/lib/ext目錄下的歸檔文件中所存放的系統類文件。顯然,在那裏找不到相應的類文件,然後在查看classpath。於是查看:
/home/user/classdir/com/horstmann/corejava/Employee.class(帶有package com.horstmann.corejava)
/com/horstmann/corejava/Employee.class
/home/user/archives/archive.jar中的com/horstmann/corejava/Employee.class
這就表示我們在保存java文件時,要將編譯的class文件放入與包名對應的目錄中。因爲編譯器是根據包名到相應的路徑中查找.class文件。
當然改類必須是在這個包內,否則即使是取Employee.class名,也不會編譯通過。