2007年12月26日水曜日

シェルスクリプトでjavaのクラスを実行

スズキです。

Seasar2ベースの実行クラスをシェルスクリプトから起動する必要があり、
簡単に作ってみました。
クラスパスまわりが面倒ですが、こんな感じでしょうか?

--------
#!/bin/sh
BASEDIR=/hoge
CLASS=jp.co.iret.esthe.quartz.s2.S2Bootstrap
LOG=/hoge/current.log
CLASSPATH=$BASEDIR/bin

for file in `ls $BASEDIR/lib`; do
  CLASSPATH=$CLASSPATH:$BASEDIR/lib/$file
done

java -classpath $CLASSPATH $CLASS >> $LOG
--------
※bin下にクラス(パッケージ)が配置されています。
※lib下に各種ライブラリ(jar)が配置されています。

for使ってjarファイル拾って、クラスパスに追加する部分が
ポイントといえばポイントでしょうか!?

また、S2JMS-Serverでは、
自身のJarファイルと同じ位置にあるJarファイルを
クラスパスに自動で追加してくれるらしいです。
http://s2jms.seasar.org/ja/server.html

この仕組みもマネさせてもらおう。(来年)

--

http://suz-lab.blogspot.com/

0 コメント: