クラスパスの設定・具体例
このページでは自作の Java パッケージを取り込み、クラスパスを設定することによって、 Java のコンパイルが正しく行われる様子を確認しましょう。
Vehicle.java とその派生クラス Car.java を次のように定義したとします。
まず、Vehicle.java ファイルは次の内容とします。
package com.keicode.java.test; class Vehicle { private String driverName; public Vehicle( String d ) { driverName = d; } public String getDriverName() { return driverName; } }
Car.java は次の内容です。
package com.keicode.java.test; class Car extends Vehicle { private int numberOfDoors; public Car( String d, int doors ) { super( d ); numberOfDoors = doors; } }
「車」は「乗り物」ですから、Car (車) クラスは Vehicle (乗り物) クラスから派生しています。 このため、Car クラスをコンパイルするときには、Vehicle クラスを参照する必要があります。
さて、これらのファイルのパスを C:\test\com\keicode\java\test であるとします。
まず、Vehicle.java をコンパイルしましょう。
C:\test\com\keicode\java\test>javac Vehicle.java
これは特に問題なく成功します。
次に Car.java をコンパイルします。
C:\test\com\keicode\java\test>javac Car.java Car.java:3: cannot find symbol symbol: class Vehicle class Car extends Vehicle { ^ 1 error
Vehicle が見つからないために、コンパイルに失敗しました。
そこで、クラスパスを確認します。
C:\test\com\keicode\java\test>set CLASSPATH CLASSPATH=.;C:\Program Files\Java\jre6\lib\ext\QTJava.zip
現在のクラスパスは . (現在のディレクトリ) および C:\Program Files\Java\jre6\lib\ext\QTJava.zip が設定されています。
そこで、C:\test を基点としてクラスファイルを探せるよう、次のように C:\test を追加します。%CLASSPATH% は現在の設定に展開されてます。
C:\test\com\keicode\java\test>set CLASSPATH=%CLASSPATH%;C:\test
そこで再度、Car.java のコンパイルを試みます。
C:\test\com\keicode\java\test>javac Car.java C:\test\com\keicode\java\test>
今度は Vehicle.class が見つかり、正常に終了しました。
以上で、確かにクラスパスの設定が有効となったことが確認できました。