web-dev-qa-db-ja.com

EclipseでANTスクリプトを使用する場合のJavaコードのデバッグ方法

Javaクラスがあり、それをデバッグする必要があります(ブレークポイントを設定し、F6を使用し続けます)。ANTスクリプトを使用して、コードを初期化、ビルド、デプロイ、および実行します。

<javac srcdir="${src.dir}" destdir="${classes.dir}" debug="true" debuglevel="lines,vars,source">

..........

</javac>

しかし、foo.Javaクラスの行にブレークポイントを配置し、antスクリプトを実行すると(実行部分、run-> Debug As-> Ant Buildを右クリック)、Eclipseはその行で停止しませんコード。

何が欠けていますか?!

41
zengr

の中に <Java> antタスクでは、2つのjvmパラメーターを追加する必要があります(<jvmarg> IIRC)デバッグを有効にします。

 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5432

これにより、デバッグがオンになっているJavaプログラムが起動し、プログラムはポート5432でデバッガー接続を受け入れる準備ができます。その後、IDEのリモートデバッグ機能を使用して、ポート5432に接続するように指示する必要があります。

31
jkff

(与えられた答えにコメントできなかったので、別の答えをしなければなりません)

EclipseからAntを起動するときに、<Java>タスクにfork = "true"を追加する必要があることに気付きました。また、ネストされたjvmargの記述方法が最初は明確ではなかったため、例を示します。

<Java classname="..." fork="true">
  <jvmarg value="-Xdebug" />
  <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5432" />
  ...
</Java>
49
Samuel Lampa

Eclipseの場合

Toolbar > External Tool Configurations... > (select your existing ANT build or create new) > JRE tab

"VM Arguments"追加:

-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y

再びToolbar > Debug > Debug Configurations... > Remote Java Application > New

Name: Debug Ant
Project: <Select your project where debug files are kept>
Host: localhost
Port: 8787

次に、「External Tool Configurations」で「ANT Task」を起動します(これは、リモートJavaアプリケーションデバッガが接続)、[Debug]ツールバーアイコンから[Debug Ant]を起動します。

4
KrishPrabakar

これは私がそれを私のために働いた方法です (将来の参考のためにコメントするだけです)。

先のリンクダンプ:


Antタスクのデバッグは単純な古いJavaデバッグです。ブレークポイントを追加してAntファイルをデバッグできますが、特定のカスタムタスクのコードを掘り下げるには、リモートデバッガーを順番に追加する必要があります実行中のプロセスを「キャッチ」できるようにします。

Eclipseでこれを行う方法を説明しますが、すべてのメジャーJava IDEで実現できます。最初に使用するantファイルの新しい実行構成を作成しますカスタマイズされた新しいタスク。

実行->外部ツール->外部ツール設定...

Ant Build-> Newを右クリックし、MainタブのBuildfileフィールドでantスクリプトを選択します。次に、[JRE]タブに移動して、次のJVM引数を挿入します。

-Xrunjdwp:transport = dt_socket、address = 8000、server = y、suspend = n

これらの引数が何を意味するのか疑問に思う場合は、これを確認してください。ただし、少し更新されています(Java 1.5)。

これが完了したら、リモートJavaアプリケーションの新しいデバッグ構成を作成する必要があります。これを行うには、次の場所に移動します。

実行->構成のデバッグ

左側の列のリストをドロップダウンし、リモートで右クリックしますJava Application-> New。Projectフィールドでプロジェクト名を選択します。ホストとポートのデフォルト値は、使用する限り問題ありませんAnt構成と同じもの(JVM引数)。

すべてがテスト実行の準備ができました!必要と思われる場所にブレークポイントを追加します。私の場合、カスタムantタスクを使用するantスクリプトと、カスタムantタスクのexecuteメソッドの両方に1つを追加しました。

Antスクリプトまたはタスクを右クリック->としてデバッグ...-> Ant>最初にビルド

カスタムantタスクコードを呼び出す前に、Run-> Debug Configurationsに進み、以前に作成したJava Remote Application config。をデバッグします。これにより、カスタムantタスクコードをデバッグする別のスレッドが開始されます。いくつかのブレークポイントが含まれていれば:)次の画像では、私の場合、カスタムantタスクのexecuteメソッドでスレッドが停止した様子を見ることができます。この後、次に何をするかはあなた次第です...

3
Mehdi
set ANT_OPTS=%ANT_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5432

eclipseで

Toolbar >> Run >> Debug Configurations >> + >> 

値を指定します。

Name: Debug_Ant
Project: active-Eclipse-project
Host:localhost
Port:5432
2
abeym

これは、antを使用してビルドおよびデプロイするWebアプリケーションをデバッグする方法を知りたい人を支援するためです。これは、レガシーアプリケーションでは非常に頻繁に発生します。プロジェクトが最初に「動的Webプロジェクト」として開始された場合、次の手順、さらにはAntは必要ありません。

コードにブレークポイントを設定します。

Window -> Show View -> Others -> Servers

たとえば、サーバーJBossまたはTomcatを追加します。

サーバーを右クリックして、「デバッグ」を選択します。

Antビルドファイルでdebug = "true"が設定されていることを確認してください。

2
zawhtut

手順:

1)リモートを設定するJavaローカルホストを名前として、ポートアドレスを80(またはシステムのポートアドレスは何でも))

2)バッチファイルを作成し、Tomcatのbinフォルダーに保存します(このステップは、同じシステムにサーバーを保持してリモートでデバッグする場合に必要です)。

バッチファイルでは、次の行を保持する必要があります。

jPDA_ADDRESS = 80を設定します

jPDA_TRANSPORT = dt_socketを設定します

catalina.bat jpda start

この後、Javaコードにブレークポイントを保持し、このリモートデバッガーをデバッグします。動作します。

ハッピーコーディング!!

1
Soumya Sarkar

私もこの問題に直面し、解決するために次の手順を実行しました。

  1. ANTファイルに以下の行を入れてください

  2. デバッグ構成に移動->リモートJava application->プロジェクト名、ポート= 5432の新しい構成ファイルを作成し、ホストはlocalhostで保存します。

  3. デバッグモードを使用してbuild.xmlを実行すると、コンソールに「アドレス5432のトランスポートdt_socketをリッスンしている」ことが表示されます。

  4. 次に、構成したデバッグ構成ファイルを実行します。これで、デバッグモードを使用してSeleniumコードが実行されます。

お役に立てれば。

まだ問題に直面している場合は、私がその上であなたを助けることができるように私に知らせてください。

ありがとう

0
user2346563