0
0

More than 1 year has passed since last update.

Javaのバッチプログラムに対してEclipseからリモートデバッグを設定する

Last updated at Posted at 2023-04-23

JDWPを使用することで、リモートからJavaアプリケーションをデバッグすることができるようになります。

JDWPの設定を行ったアプリケーションに対して、リモートのEclipseからネットワーク越しにデバッグを実行します。また、バッチプログラムにかぎらずAPサーバ上で動作するJavaプログラムに対しても同様にデバッグできます。

環境

  • CentOS 8(docker)
  • OpenJDK 1.8.0_312-b07

Javaプログラム側設定

Javaの実行時オプションにJDWPの設定を追加します。コマンド行を変更することができない場合、JAVA_TOOL_OPTIONS環境変数を使用することができます。

export JAVA_TOOL_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=y"

オプションのaddressに対して接続ポートを設定します。
またリモートから接続するまでプログラムを停止させる場合は、suspend=yに設定する。APサーバ上のプログラム等、プログラム実行後に接続してもデバッグできる場合は、suspend=nでもOK。

suspend=yで実行した場合、以下のメッセージを出力して実行を停止します。

Picked up JAVA_TOOL_OPTIONS: -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=y
Listening for transport dt_socket at address: 8787

Eclipse側設定

プログラムを停止したいところで、ブレークポイントを設定したのち、Eclipseのデバッグ設定画面を開き、「Remote Java Application」の設定を行います。

接続プロパティで、設定先のホスト名(今回はlocalhost)とポート(今回は8787)を設定します。

image.png

Eclipse設定後

接続プロパティ設定後、Debugボタンを押下すると、ネットワーク越しにアプリケーションと接続し、Javaアプリケーションが開始され、ブレークポイント設定箇所まで進みます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0