27
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Eclipseでバッチ起動のJavaプログラムをデバッグ(ステップ実行)する

Last updated at Posted at 2014-05-30

#Javaプログラムを書く
##Eclipseのプロジェクト構成
プロジェクト構成はこんな感じです。

Hello.javaでなくてDebug.javaでした。スクリーンショットが間違っています。(私のミスです!)
Hello.javaではなく、以後もDebug.javaとして出てきますので、Debug.javaというクラスを作成してください。

##実行するJavaファイル
Javaファイル「Debug.java」の中身はこんな感じで。

Debug.java
package sample;

public class Debug {
	public static void main(String[] args) {
		System.out.println("");
		System.out.println("java引数 → " + args[0]);
		String vmarg = System.getProperty("vmarg");
		System.out.println("VM引数 → " + vmarg);
	}
}

処理としてはmainへ渡す引数とVM引数の値をprintしているだけです。

#Javaを実行するバッチを書く

execute.bat
SET CONTEXT="C:\eclipse4.2\workspace\Debug"
SET REMOTE_DEBUG="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y"
call %JAVA_HOME%\bin\java.exe -cp %CONTEXT%\bin\ %REMOTE_DEBUG% -Dvmarg="HelloWorld_VMArg" sample.Debug "HelloWorld_JAVAARG"
pause

全部で4行です。
コピペしてもらえれば、ちゃんとペーストできると思います。
##1行目
このbatを置いてあるプロジェクトを変数CONTEXTにセット。
ステップ実行したいJavaファイルもこのディレクトリに置いています。
##2行目
REMOTE_DEBUG変数にJavaコマンド実行時に与えるリモートデバッグ用の引数をセットしています。
##3行目
####Javaクラス「Debug」を実行する部分です。

  • Javaコマンドの引数に-cpでクラスパスを指定。「%CONTEXT%\bin\」の部分。
  • 2行目で設定したREMOTE_DEBUG変数を引数として指定。「%REMOTE_DEBUG%」の部分。
  • VM引数としてvmargという名前で文字列"HelloWorld_VMArg"を指定。
  • 実行するJavaプログラムを指定「sample.Debug」の部分。
  • Javaプログラム「sample.Debug」の引数として文字列"HelloWorld_JAVAARG"を指定。

#batを実行する
execute.batを実行します。普通にダブルクリックすれば実行されますね。

こんな形で止まるはずです。

#Eclipseでリモートデバッグする
##設定の作成
パッケージエクスプローラのDebugプロジェクトを右クリック >> Debug As >> Debug Configurationで 
以下の画面のようにRemote Java Applicationを作成

##実行
あとはDebugボタンをポチればいいのですが、その前にDebug.javaにEclipseでブレークポイント入れておいてくださいね。
で、ポチ!
するとブレークポイントで止まります。

ステップ実行していくとコマンドプロンプトにprintデバック結果も表示されることでしょう。

なんか、かつかつで大規模なバッチプログラムとかprint文仕込んでデバックするのいやですよね。
あり得ないでしょう!

以上です。

27
30
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
27
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?