Spring BatchのJob(メインクラス)をJarファイルから実行する方法

spring

Spring Batchを使って作成したバッチ(Jarファイル)を起動する方法を紹介します。
当ブログで以前、Eclipseから実行する方法を紹介しましたが、今回はJarを直接実行する方法です。

[スポンサーリンク]

このページでやること

JarファイルのSpring BatchのJobを実行する方法を紹介します。

JarファイルのSpring Batchを実行します。

以下は、job1というJobを実行しているコマンドです。

java -cp ./dependency/*:./spring-sample.jar org.springframework.batch.core.launch.support.CommandLineJobRunner launch-context.xml job1

いきなり上記のコマンドを出しただけでは分かりにくので、1個ずつ見ていきましょう。

-cp ./dependency/

-cp ./dependency/*は、依存ライブラリのクラスパスを設定しています。
依存ライブラリを./dependencyにコピーする方法は、依存ライブラリを特定のディレクトリに取得する方法を参照して下さい。

spring-sample.jar

spring-sample.jarが実行対象のJarファイルです。

CommandLineJobRunner

org.springframework.batch.core.launch.support.CommandLineJobRunnerは、spring batchを動かすうえで必要となるクラスです。このクラス名は固定でOKです。

launch-context.xml

launch-context.xmlは、springの設定ファイルです。

job1

job1は、springの設定ファイルで定義されているjob名です。
job名はlaunch-context.xmlで以下のように定義されています。

<batch:job id="job1">
	<batch:step id="step1"  >			
		<batch:tasklet transaction-manager="transactionManager" start-limit="100" >
			<batch:chunk reader="reader" writer="writer" commit-interval="1" />
		</batch:tasklet>
	</batch:step>
</batch:job> 

最後に

Spring batchに限らずjarを実行するには、依存ライブラリにクラスパスを通しておく必要があるので忘れないように気をつけましょう!
それでは!