クラスパス
日本語 | クラス経路 |
英語 | class path |
ふりがな | くらすぱす |
フリガナ | クラスパス |
クラスファイルを指定するためのパス。
あるクラスが他のクラスを使用する時、その「他のクラス」の情報は、「他のクラスのプログラム」ではなく、コンパイルされた後の「他のクラスのクラスファイル」、もしくはそのクラスファイルが格納されたjarファイルである。
そのため、この「あるクラス」をコンパイルお呼び実行する際には、クラスファイルやjarファイルから「他のクラス」を探し出し、その情報を取得する必要がある。
この「クラスファイル」「jarファイル」のパス、もしくはこれらが置かれているディレクトリのパスを「クラスパス」と言う。
つまり、コンパイルや実行時に参照するクラスファイルやjarファイルのパスのことである。
Eclipseの場合、「ナビゲーター」でプロジェクトを右クリックすると出るメニューの「プロパティー」ダイアログの、「Java のビルドパス」-「ライブラリー」ページで指定する。
jarファイルを指定する場合「JAR の追加」もしくは「外部 JAR の追加」で追加する。前者はプロジェクト内のjarファイルを、後者はそれ以外のjarファイルを指定する場合に使用する。どちらもjarファイルを直接指定すればいいだけである。
クラスファイルを指定する場合「Add Class Folder」を指定してクラスファイルの置かれたディレクトリを指定する。
ただし、ここで指定するディレクトリは「パッケージ名を基準としたディレクトリ」とする必要がある。
たとえばパッケージが「package sample;」と指定されているクラスのクラスファイルが「/Sample/bin/sample/」ディレクトリに置かれていた場合、このクラスを使用するために指定するディレクトリは「/Sample/bin/sample/」ではなく「/Sample/bin/」である。
また、Eclipseの場合、自プロジェクトのクラスファイルは「ビルド出力フォルダー」を自動的に参照するため特に指定する必要はないが、javaコマンド等の場合にはこのフォルダも指定する必要があるので注意すること。指定するディレクトリは、上記の「Add Class Folder」と同じように考える。
あるクラスが他のクラスを使用する時、その「他のクラス」の情報は、「他のクラスのプログラム」ではなく、コンパイルされた後の「他のクラスのクラスファイル」、もしくはそのクラスファイルが格納されたjarファイルである。
そのため、この「あるクラス」をコンパイルお呼び実行する際には、クラスファイルやjarファイルから「他のクラス」を探し出し、その情報を取得する必要がある。
この「クラスファイル」「jarファイル」のパス、もしくはこれらが置かれているディレクトリのパスを「クラスパス」と言う。
つまり、コンパイルや実行時に参照するクラスファイルやjarファイルのパスのことである。
Eclipseの場合、「ナビゲーター」でプロジェクトを右クリックすると出るメニューの「プロパティー」ダイアログの、「Java のビルドパス」-「ライブラリー」ページで指定する。
jarファイルを指定する場合「JAR の追加」もしくは「外部 JAR の追加」で追加する。前者はプロジェクト内のjarファイルを、後者はそれ以外のjarファイルを指定する場合に使用する。どちらもjarファイルを直接指定すればいいだけである。
クラスファイルを指定する場合「Add Class Folder」を指定してクラスファイルの置かれたディレクトリを指定する。
ただし、ここで指定するディレクトリは「パッケージ名を基準としたディレクトリ」とする必要がある。
たとえばパッケージが「package sample;」と指定されているクラスのクラスファイルが「/Sample/bin/sample/」ディレクトリに置かれていた場合、このクラスを使用するために指定するディレクトリは「/Sample/bin/sample/」ではなく「/Sample/bin/」である。
また、Eclipseの場合、自プロジェクトのクラスファイルは「ビルド出力フォルダー」を自動的に参照するため特に指定する必要はないが、javaコマンド等の場合にはこのフォルダも指定する必要があるので注意すること。指定するディレクトリは、上記の「Add Class Folder」と同じように考える。
参考サイト
- (参考サイトはありません)
// Sample.java
// OtherPackageClassクラスを使うのでインポートします。
import test.test2.OtherPackageClass;
public class Sample
{
public static void main( String[] args )
{
// OtherPackageClassクラスを使います。
OtherPackageClass otherPackageClass = new OtherPackageClass();
otherPackageClass.output();
}
}
// test/test2/OtherPackageClass.java
/**
つまり、このファイルはtest/test2フォルダの中にあります。
Sample.javaはtestフォルダと同階層にあります。
位置関係はこんな感じ。
project/src/Sample.java
project/src/test/test2/OtherPackageClass.java
*/
package test.test2;
/**
* test.test2パッケージ内のクラス。
*/
public class OtherPackageClass
{
/**
* 出力します。
*/
public void output()
{
System.out.println( "OtherPackageClass#output()" );
}
}
/*
・javacコマンドによるコンパイル
ソース: project/src/
出力先: project/bin/
とします。
コンソールを開いて、projectディレクトリに移動してください。
> javac -d bin -classpath bin -sourcepath src src/test/test2/OtherPackageClass.java
> javac -d bin -classpath bin -sourcepath src src/Sample.java
でソースファイル2つをコンパイルできます。
次の2つのクラスファイルが作られます。
project/bin/Sample.class
project/bin/test/test2/OtherPackageClass.class
・javaコマンドによる実行
> java -classpath bin Sample
OtherPackageClass#output()
この「-classpath」がクラスパスの指定です。
binディレクトリに指定していることに注意してください。
クラスファイルひとつひとつを指定するのではなく、パッケージの基準となる
ディレクトリを指定します。
*/
// OtherPackageClassクラスを使うのでインポートします。
import test.test2.OtherPackageClass;
public class Sample
{
public static void main( String[] args )
{
// OtherPackageClassクラスを使います。
OtherPackageClass otherPackageClass = new OtherPackageClass();
otherPackageClass.output();
}
}
// test/test2/OtherPackageClass.java
/**
つまり、このファイルはtest/test2フォルダの中にあります。
Sample.javaはtestフォルダと同階層にあります。
位置関係はこんな感じ。
project/src/Sample.java
project/src/test/test2/OtherPackageClass.java
*/
package test.test2;
/**
* test.test2パッケージ内のクラス。
*/
public class OtherPackageClass
{
/**
* 出力します。
*/
public void output()
{
System.out.println( "OtherPackageClass#output()" );
}
}
/*
・javacコマンドによるコンパイル
ソース: project/src/
出力先: project/bin/
とします。
コンソールを開いて、projectディレクトリに移動してください。
> javac -d bin -classpath bin -sourcepath src src/test/test2/OtherPackageClass.java
> javac -d bin -classpath bin -sourcepath src src/Sample.java
でソースファイル2つをコンパイルできます。
次の2つのクラスファイルが作られます。
project/bin/Sample.class
project/bin/test/test2/OtherPackageClass.class
・javaコマンドによる実行
> java -classpath bin Sample
OtherPackageClass#output()
この「-classpath」がクラスパスの指定です。
binディレクトリに指定していることに注意してください。
クラスファイルひとつひとつを指定するのではなく、パッケージの基準となる
ディレクトリを指定します。
*/
// Sample.java // OtherPackageClassクラスを使うのでインポートします。 import test.test2.OtherPackageClass; public class Sample { public static void main( String[] args ) { // OtherPackageClassクラスを使います。 OtherPackageClass otherPackageClass = new OtherPackageClass(); otherPackageClass.output(); } } // test/test2/OtherPackageClass.java /** つまり、このファイルはtest/test2フォルダの中にあります。 Sample.javaはtestフォルダと同階層にあります。 位置関係はこんな感じ。 project/src/Sample.java project/src/test/test2/OtherPackageClass.java */ package test.test2; /** * test.test2パッケージ内のクラス。 */ public class OtherPackageClass { /** * 出力します。 */ public void output() { System.out.println( "OtherPackageClass#output()" ); } } /* ・javacコマンドによるコンパイル ソース: project/src/ 出力先: project/bin/ とします。 コンソールを開いて、projectディレクトリに移動してください。 > javac -d bin -classpath bin -sourcepath src src/test/test2/OtherPackageClass.java > javac -d bin -classpath bin -sourcepath src src/Sample.java でソースファイル2つをコンパイルできます。 次の2つのクラスファイルが作られます。 project/bin/Sample.class project/bin/test/test2/OtherPackageClass.class ・javaコマンドによる実行 > java -classpath bin Sample OtherPackageClass#output() この「-classpath」がクラスパスの指定です。 binディレクトリに指定していることに注意してください。 クラスファイルひとつひとつを指定するのではなく、パッケージの基準となる ディレクトリを指定します。 */