Java アプリケーションの起動スクリプト - Windows・Linux

指定ディレクトリ内の全 JAR ファイルをクラスパスへ指定して Java アプリケーションを起動するスクリプト例です。

今回のソースは http://github.com/fits/try_samples/tree/master/blog/20141103-1/

Windows の場合 (bat)

lib ディレクトリ内の全 JAR ファイルをクラスパスへ指定して Java アプリケーション (下記では sample.SampleApp) を実行する bat スクリプトは下記のようになります。

enabledelayedexpansion!<環境変数>!環境変数を遅延展開させる点に注意が必要です。

こうしないと CP 環境変数へ JAR のパスが正しく設定されません。

exec_java_sample.bat
@echo off

setlocal enabledelayedexpansion

set APP_CLASS=sample.SampleApp

set BASE_DIR=%~d0%~p0

set CP=%BASE_DIR%
set LIB=%BASE_DIR%lib

for %%j in ("%LIB%\*.jar") do call set CP=!CP!;%%j

java -cp %CP% %APP_CLASS% %*

endlocal

Linux の場合 (bash

bash の場合も bat とほぼ同じ様に書けます。

exec_java_sample.sh
#!/bin/sh

APP_CLASS=sample.SampleApp

BASE_DIR=`dirname $0`

CP=$BASE_DIR
LIB=$BASE_DIR/lib

for jar in $LIB/*.jar; do CP=$CP:$jar; done

java -cp $CP $APP_CLASS $*