はじめに
バッチのデバッグ例の備忘記録。
Eclipseでjavaを使用しmavenでビルド、バッチ実行でのデバッグをメモ。
現状のファイル構成
ビルドとできるファイル名と場所
mvn clean package
でビルドしjarファイルができる。
mvn clean package
の意味と動作
🔹 clean
-
target/
ディレクトリを削除して、古いコンパイル結果や生成物をクリーンにします。
🔹 package
-
pom.xml
に基づいてプロジェクトをビルドし、 - ソースコードをコンパイルし(
src/main/java
)、 - テストを実行し(
src/test/java
)、 -
target/
フォルダ内に JARファイル(またはWARなど)を作成します。
生成されるファイル
pom.xml
が以下のような設定なら:
<groupId>com.example</groupId>
<artifactId>batch-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
このようなファイルが target/
に生成されます:
target/
├── batch-demo-1.0-SNAPSHOT.jar ← ← これが成果物(実行ファイル)
├── classes/
│ └── ... ← コンパイルされた `.class` ファイル群
├── test-classes/
│ └── ... ← テスト用 `.class` ファイル
└── ...
実行方法(JARファイルをコマンドラインから)
java -cp target/batch-demo-1.0-SNAPSHOT.jar com.example.batch_demo.BatchProgram
引数を渡す場合は:
java -cp target/batch-demo-1.0-SNAPSHOT.jar com.example.batch_demo.BatchProgram arg1 arg2
Eclipseで ソースのBatchProgram.java
をデバッグする手順
◆ 1. ブレークポイントを設定
-
BatchProgram.java
をエディタで開いて、 -
main
メソッドのSystem.out.println("Batch program started...");
の左の灰色部分をクリック → ●マークが付きます(ブレークポイント)
最終的なデバッグ例
◆ 2. デバッグ構成を作成
- メニューから
実行 > デバッグ構成
を選択 - 左のリストから
「Java アプリケーション」→batch-demo
を右クリック → 「新規作成」 - 「メイン」タブで以下を設定:
- プロジェクト:
batch-demo
- メイン・クラス:
com.example.batch_demo.BatchProgram
- プロジェクト:
- 「引数」タブに移動して:
- プログラム引数:
arg1 arg2
など(必要があれば)
- プログラム引数:
- 「適用」→「デバッグ」
◆ 3. デバッグ実行して確認
-
デバッグ
ボタンを押すと、プログラムがブレークポイントで停止します。 - 「変数」ビューで
args
の中身や変数の状態を確認できます。 - ステップ実行もできます:
- F5:ステップイン(メソッドに入る)
- F6:ステップオーバー(次の行に進む)
- F8:ブレークポイントまで続行
補足:run.batではなくEclipseから直接起動
Eclipse でデバッグするときは run.bat
は使わず、Eclipse のデバッグ構成から直接実行します。
(run.bat
はコマンドライン用なので Eclipse のブレークポイントに反応しません)
run.bat
@echo off
echo Starting the batch program...
java -cp target/batch-demo-1.0-SNAPSHOT.jar com.example.batch_demo.BatchProgram arg1 arg2
echo Batch program finished.
pause
DB設定箇所例
JavaバッチにおけるDB接続先の設定箇所を整理してご説明します。
一般的なDB接続設定の場所
JavaバッチのDB接続設定は、以下のいずれかに定義されていることが多いです。
設定ファイル例 | 用途/中身の例 | フレームワーク依存 |
---|---|---|
application.properties or application.yml
|
Spring Bootの場合 | spring.datasource.url=... |
persistence.xml |
JPA (Hibernateなど) | <connection-url>jdbc:... |
context.xml |
TomcatなどのJNDI設定 | <Resource name="jdbc/..." ...> |
db.properties / jdbc.properties
|
独自フレームワークやバッチ用 | jdbc.url=... |
Javaソース直書き(非推奨) | DriverManager.getConnection(...) |
テストコードなど簡易実装 |
ありがとうございます、Spring(おそらく Spring Boot)ベースのバッチであれば、DB接続設定の切り替えは明確に管理されています!
以下に、「SpringバッチでのDB接続先の変更方法」を具体的にまとめました👇
Spring Boot バッチでの DB接続設定場所
Spring Boot では通常、以下のようなプロパティファイルに設定されています:
src/main/resources/application.properties
または application.yml
.properties
の例:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=dbuser
spring.datasource.password=dbpass
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
.yml
の例:
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: dbuser
password: dbpass
driver-class-name: com.mysql.cj.jdbc.Driver
この設定がバッチの実行時に使用される接続先になります。