[Java] 8.4. 類別路徑參數

類別路徑參數 -classpath,讓你指向你所使用的套件。

 

image/svg+xml8.4. 類別路徑參數 - -classpath package personMgt . companyMgt ; import personMgt . * ; public class Employee extends Person { public String empID; public int salary; public Employee(){ super (); } int getRealAge(){ return age; } } 編譯時的 javac 指令 c:\ javac -d . Employee.java 編譯時發⽣錯誤 public class Employee extends Person{ ^ symbol: class Person Employee.java:12: error: cannot find symbol return age; ^ symbol: variable age location: class Employee 2 errors package personMgt . companyMgt ; import personMgt . * ; public class Employee extends Person { public String empID; public int salary; public Employee(){ super (); } int getRealAge(){ return age; } } 編譯時的 javac 指令 c:\ javac -d . -classpath classes Employee.java import personMgt . * ; import personMgt . companyMgt . * ; public class MainClass { public static void main( String [] args) { Person p = new Person(); Employee e = new Employee(); } } 編譯時的 javac 指令 c:\ javac -d . -classpath classes;classes1 MainClass.java J8_4_1 – Employee.java J8_4_1 – Employee.java classes Person.clas s personMgt Employee.java C:\ 1. 位於公司管理套件( companyMgt )下的員⼯類別( Employee 希望繼承⼈員管理套件( personMgt )下的⼈員類別( Person )。 . 因此 javac 會依照⽬前所在的路徑 c:\ ,去尋找⼈員管理套件下的⼈員類別 檔,以進⾏引⽤並編譯的任務。 3. 多了⼀個 classes ⽬錄,這樣 javac 無法在 c:\ 找到⼈員管理套件了,當然也找不到 ⼈員類別。所以就發⽣了編譯失敗。有沒有辦 法讓位於訂的⽬錄套件也能使⽤嗎? 1. 位於公司管理套件( companyMgt )下的員⼯類別( Employee )希望 繼承⼈員管理套件( personMgt )下的⼈員類別( Person )。 classes Person.clas s personMgt Employee.java C:\ 2. 在使⽤ javac 編號 java 原始檔時,可搭配 - classpath 指令參數來指名⼈員管理套件的所在路 徑,如此在編譯的時候就可依給定的路徑,找到相關 的套件後在找到其中的⼈員類別檔了,以進⾏編譯。 J8_4_2 – Main.java C:\ MainClass.java personMgt Person.class classes personMgt Employee.clas s classes1 companyMgt 1. 同時引⽤兩個不同的套件:⼈員管理套件 personMgt )與公司套件( companyMgt )。 2. 透過 javac 編譯時於 -classpath 指令參數中使⽤分號( ; )來同 時表⽰兩個套件的所在路徑 ( 編譯會產⽣類別檔 -MainClass.class 於⽬前路徑 C:\) ,如此,雖然⼈員管理套件與公司套件分別存在於 classes classes1 兩個⾃訂的⽬錄,但都可以使⽤ -classpath 搭配分號( ; )指向多個存放套件的⾃訂⽬錄。 ⼀定要將⼈員管理套件放在同⼀個位置, 才能夠進⾏編譯類別的動作嗎? -classpath ,指出編譯時的⼈員管理套件位置 -classpath+ 分號( ; ), javac java 指向多個⾃訂⽬錄 1 1

留言