2011年12月7日水曜日

[JAVA] shell 调用 java 程序

#!/bin/sh

# システムプロパティ
VIEW_CMPCD=false # 会社コード一覧表示モード
IGNORE_MODE=false # 競合無視モード (false: 無視)
TARGET_DB="" # デフォールト移行元 DB
DEFAULT_PROPERTY_FILE="moving_tool.properties" # プロパティファイル
DEFAULT_LOG_FILE="moving_tool.log" # ログファイル
DEFAULT_JDBC_DRIVERS="oracle.jdbc.driver.OracleDriver:org.postgresql.Driver" # JDBC ドライバー
DEBUG=false; # デバッグモード (true: 有効)

# 環境変数
moving_tool_CMD=`which $0`
moving_tool_HOME=`dirname $moving_tool_CMD`
JAVA_HOME=/usr/java/default
CLASS_PATH=$moving_tool_HOME

USAGE="Usage: moving_tool [オプション] 主引数
 主引数: 会社コード(CMPCD)のスペース区切りの並び
 オプション:
  -l    リスト表示
        会社コードと会社名の一覧を表示して終了する。
  -h    ヘルプ表示
        オプション一覧を表示して終了する。
  -v    バージョン表示
        リリースバージョンを表示して終了する。
  -i    移行中のデータ書き込みが在った場合に、報告だけして、中止せず移行動作を継続させる。
  -d    デフォルトの移行先データベース番号";

# オプション解析
while getopts lhvid: OPTION ; do
case "$OPTION" in
l) VIEW_CMPCD=true ;;
h) echo "$USAGE"; exit 1 ;;
v) echo "version 0.0.0"; exit 1 ;;
i) IGNORE_MODE=true ;;
d) TARGET_DB="$OPTARG" ;;
\?) echo "$USAGE"; exit 1 ;;
esac
done

# JAVA 起動オプションを生成
BASIC_OPTION="-server -Xms32m -Xmx64m -classpath $CLASS_PATH:$moving_tool_HOME/moving_tool.jar:ojdbc14.jar:postgresql-9.0-802.jdbc4.jar {OPTS} com.xxx.moving_tool.MovingTool"

OPTIONS=""

# JDBC ドライバ指定
OPTIONS=$OPTIONS" -Djdbc.drivers="$DEFAULT_JDBC_DRIVERS

# ログファイル出力場所
OPTIONS=$OPTIONS" -DlogFile="$DEFAULT_LOG_FILE

# 移行中のデータ書き込みが在った場合の動作指定
if $IGNORE_MODE; then
    OPTIONS=$OPTIONS" -DignoreMode=true"
fi

# 会社コード一覧表示モードの指定
if $VIEW_CMPCD; then
    OPTIONS=$OPTIONS" -DviewCmpcd"
fi

# 設定ファイルの場所
OPTIONS=$OPTIONS" -DpropertyFile="$DEFAULT_PROPERTY_FILE

# デバッグモード指定
if $DEBUG; then
    OPTIONS=$OPTIONS" -Ddebug"
fi

# デフォルトデータベース番号
if [ "$TARGET_DB" != "" ]; then
    OPTIONS=$OPTIONS" -DdefaultDb="$TARGET_DB
fi

# ツール起動オプションを生成
START_OPTION=$(echo $BASIC_OPTION | sed -e "s/{OPTS}/$OPTIONS/g")
echo $START_OPTION

# ツールを実行
$JAVA_HOME/bin/java $START_OPTION $*

0 件のコメント:

コメントを投稿