クラスパスの設定・具体例

このページでは自作の 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 が見つかり、正常に終了しました。

以上で、確かにクラスパスの設定が有効となったことが確認できました。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Java 入門