SmallStyle


2008-08-06

_ Windows のバッチファイルで特定のディレクトリ以下の JAR ファイルを CLASSPATH に通す方法

とある Java のアプリケーションの実行のために,いくつかのライブラリを CLASSPATH に通してやる必要がありました.必要なライブラリの PATH をべたっと書いてしまってもいいのだが,数が増えたり,名前が変わったり,なんかのたびに修正するのも面倒なので,特定のディレクトリ下のライブラリをさくっと設定できないかと思って調べてみた.

Include all jars in the classpath definition - Real's Java How-to: によると,Windows XP 以降では以下のスクリプトで設定が可能なようです.

@echo off
setlocal ENABLEDELAYEDEXPANSION
if defined CLASSPATH (set CLASSPATH=%CLASSPATH%;.) else (set CLASSPATH=.)
FOR /R .\lib %%G IN (*.jar) DO set CLASSPATH=!CLASSPATH!;%%G
Echo The Classpath definition is %CLASSPATH%

例では,環境変数 CLASSPATH にカレントディレクトリを追加し,lib ディレクトリ以下の拡張子が jar のものを CLASSPATH に追加しています.

ENABLEDELAYEDEXPANSION は「遅延環境変数の展開」というもの.これにより環境変数の展開が実行時に行われるようになります.遅延環境変数の展開については CMD.EXEの遅延環境変数の展開 - KUBUN での説明がわかりやすかったです.

Windows バッチファイルはごくたまにしかさわらないので知らないことばかりですが,知っておくといろいろ便利ですね.


about me

いろいろと興味を持ったことを書いてます.ちょっとしたことは hb(@smallstyle) on Twitter で書いてます.

Archive

2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|12|