クラスパスについて
クラスパスっていう言葉が腹落ちしないので掘り下げる。
クラスパス=classまでのパス=JDKツールの探し先
Javaのプログラムはclassの集合である。.javaのファイルを作成し、それをコンパイルして.classを作成する。その.classのファイルが組み合わさって一つのアプリケーションとなる。これははるか昔新人研修のころにやって覚えたことだ。
クラスパスっていうのは、その一つ一つのクラスがどこにあるのか、を定義したものだ。
組み合わさって動こうにも、どこにあるのかがわからなければクラスたちは組み合わさることができない。クラスたちを統括する誰かが「このクラスはここにあって、このクラスはここにある」というのを把握しているから、クラスたちは組み合わさることができる。これがクラスパスの基本である。
CLASSPATHは何者だ
クラスパスではなくCLASSPATH。
狭義のクラスパスとでも言おうか。これは環境変数
である。CLASSPATHという環境変数を宣言し、そこにクラスパスをいくつか指定してやると、JDKツール(java、jdb、javac、javahのことを言うらしい)は、このパスの中にもクラスを探しに行くことになる。
このように、「CLASSPATH」という環境変数を使ってクラスパスを設定することもできるが、これはアプリケーション個別で設定しているわけではなく、他のアプリケーションと齟齬がでてきてしまう可能性があるため、推奨はされていない模様。JDKツール(java、jdb、javac、javah)の-classpath
オプションを使用して、アプリケーション個々で設定したほうが良さそうである。
Eclipseのビルド・パス
Eclipseのビルド・パス設定画面のライブラリータブにずらーっと並んでいるjarは、パスが指定されているものであり、コンパイル時や実行時にこのパスのjarが検索対象となる。ビルド・パスと言っているが、クラスパスとほぼ同義な模様。