クラスパスについての覚書

感想おまちしてます!

Eclipseなどにたよっていると、Unixでクラスパスと押すときに「あれ、クラスパスってそもそもなんだっけ」となる。

スポンサーリンク

クラスパスの指定

classファイルは

-classpath c:\project\classes

とかできるけど、Jarファイルは

-classpath c:\project\lib\aaaa.jar

という風に、ファイル名を指定しないとダメ。

特定のフォルダにあるJarファイル全てをクラスパスに追加する方法

バッチファイルなどでクラスパスを通すときに、libフォルダ以下のすべてのJarファイルを設定したい場合がある。Jarファイルが少しならいいのだけれど、たくさんあるときはめんどっちい。
そこで、ある特定のフォルダにあるJarファイルを、クラスパスに追加していくバッチコマンドを考えてみた。Java SE6.0では/lib/*とかできるらしいからそれまでしんぼうだ。

rem build.bat 呼び出し元
set CLASS_PATH=%CLASS_PATH%
FOR %%c in ("%ANT_HOME%\lib\*.jar") DO call addclasspath %%c
echo %CLASS_PATH%
echo off
rem addclasspath.bat クラスパスを追加するだけのバッチ
set CLASS_PATH=%CLASS_PATH%;%1 

1つのバッチにまとめたいところだけど、

FOR %%c in ("%ANT_HOME%\lib\*.jar") DO set CLASS_PATH=%CLASS_PATH%;%%c

がどうもうまくいかない。最期のJarのみ追加されるので、バッチをわけてみたところついに成功。