先在windows中編譯成batch.jar
shell文【bt0007_start.sh】
主執行語句,執行bt0007Job,baseDate是啓動參數
java -jar /opt/iij/batch-1.0.0.jar bt0007Job baseDate=${baseDate} >> /opt/iij/logs/batch/BT0007.sh.log 2>&1 &
#!/bin/sh
#---------------------------------------------------------------------
# BT0007 開始
#---------------------------------------------------------------------
# 実行時に指定された引數の數、つまり変數 $# の値が 1 でなければエラー終了。
if [ $# -ne 1 ]; then
echo "指定された引數は「$#」個です。「バッチ日付(YYYYMMDD)」を指定してください。"
echo "使用例:sh bt0007_start.sh 20200101"
exit 1
fi
## 入力パラメータ ##
# バッチ日付(YYYYMMDD)
baseDate=$1
# main cmd
VAL_PID=`ps -ef | grep "batch-1.0.0.jar" | grep -v "grep" | grep -v "$$" | wc -l `
if [ ${VAL_PID} -ge 1 ]
then
echo "プロセス再確認中" > /opt/iij/logs/batch/BT0007.sh.log
sleep 5
VAL_PID=`ps -ef | grep "batch-1.0.0.jar" | grep -v "grep" | grep -v "$$" | wc -l `
if [ ${VAL_PID} -ge 1 ]
then
MSG_INF="既にBatchは起動しています。"
echo ${MSG_INF} >> /opt/iij/logs/batch/BT0007.sh.log
EXIT_CODE="0"
else
echo "#### 「BT0007」バッチ実行開始 ####"
echo "開始日時:"$(date +"%Y/%m/%d %H:%M:%S.%3N")
java -jar /opt/iij/batch-1.0.0.jar bt0007Job baseDate=${baseDate} >> /opt/iij/logs/batch/BT0007.sh.log 2>&1 &
pid=$!
echo "#### pid = ${pid} ####"
echo "#### バッチ実行中.......... ####"
wait $pid
fi
else
echo "#### 「BT0007」バッチ実行開始 ####"
echo "開始日時:"$(date +"%Y/%m/%d %H:%M:%S.%3N")
java -jar /opt/iij/batch-1.0.0.jar bt0007Job baseDate=${baseDate} >> /opt/iij/logs/batch/BT0007.sh.log 2>&1 &
pid=$!
echo "#### pid = ${pid} ####"
echo "#### バッチ実行中.......... ####"
wait $pid
echo "終了日時:"$(date +"%Y/%m/%d %H:%M:%S.%3N")
echo "#### 「BT0007」バッチ実行終了 ####"
fi
# exit status
exit ${EXIT_CODE}
BT0007JobConfiguration
jobBuilderFactory.get("bt0007Job")
/**
* 機能概要:bt0007Job
* @return なし
*/
@Bean
public Job bt0007Job() throws IOException, JobParametersInvalidException {
return jobBuilderFactory.get("bt0007Job")
.incrementer(new RunIdIncrementer())
.start(bt0007GetParametersStep())
.next(bt0007DataProcessStep())
.next(bt0007FileCopyStep())
.listener(bt0007Listener)
.build();
}
注意properties文件取得問題,在jar內部試了各種方法沒有成功,最後放在jar外部成功了。