マイナー・マイナー

隠れた名作の発掘が生きがい。

EclipseでAntのJavaタスクをデバッグ実行する設定手順


スポンサードリンク

Antファイルに書いたJavaタスクをEclipseデバッグ実行する手順をメモしました。Javaタスクをリモートデバッグ可能なように起動させ、Eclipseからデバッグ接続します。


適当なプロジェクトとクラスの用意
HelloWorldプロジェクトのsrcディレクトリ直下に下記のようなHelloWorldクラスを用意しました。

public class HelloWorld {
     public static void main(String[] args) {    
          System.out.println("Hello World");    
     }
}


ビルドしてデバッグ実行するAntファイル
HelloWorldクラスをビルドしてデバッグ実行するAntファイル(build.xml)を下記のように書きました。javacタスクではdebug要素をtrue(またはon)を記述します。javaタスクにはXdebug、Xrunjdwpをvalue属性に持つjvmarg要素を追加します。

<?xml version="1.0" encoding="UTF-8"?>
<project default="run">
    <property name="src" location="./src" />
    <target name="compile">
        <javac srcdir="${src}"
            destdir="${src}"
            debug="true" />
    </target>
    <target name="run" depends="compile">
        <java classname="HelloWorld"
            classpath="${src}"
            fork="true">
            <jvmarg value="-Xdebug" />
            <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000" />
        </java>
    </target>
</project>


デバッグ構成の準備
Eclipseの実行(run)→デバッグ構成(Debug Configurations)を選択します。リモートJavaアプリケーション(Remote Java Application)を選択し、右クリックで起動構成を新規作成します。対象のプロジェクトを入力し、接続タイプは標準(ソケット接続)を選択する。ホスト、ポートはそれぞれlocalhost、8000で適用します。

f:id:yosinoo:20140819232441p:plain


デバック実行
HelloWorldクラスの適当な箇所にブレークポイントを置きます。次にbuild.xmlのAnt実行を行います。「Listening for transport dt_socket at address: 8000」のメッセージが現れたら、作成したデバッグ構成よりデバッグを行います。ブレークポイントで実行が止まったら成功です。