在Eclipse中使用ANT脚本时如何调试Java代码

时间:2010-03-09 05:15:24

标签: java eclipse ant debugging

我有一个java类,我需要调试它(放置断点并继续使用F6)。我正在使用ANT脚本来初始化,构建,部署和运行代码。我正在使用:

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

..........

</javac>

但是当我将断点放在我的foo.java类中的一行中并运行ant脚本(运行部分,右键单击运行 - &gt; Debug As - &gt; Ant Build)时,Eclipse不会停在那行代码处。

我错过了什么?!

8 个答案:

答案 0 :(得分:49)

(无法对给定答案发表评论,因此必须另外回答)

我意识到从Eclipse启动Ant时,你必须将fork =“true”添加到<java>任务中。另外,我首先不清楚如何编写嵌套的jvmargs,所以这里举个例子:

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

答案 1 :(得分:30)

<java> ant任务中,您应该添加两个jvm参数(<jvmarg> IIRC)以打开调试:

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

这将启动打开调试的java程序,程序将准备接受端口5432上的调试器连接。然后,您应该使用IDE的远程调试工具并指示它连接到端口5432.

答案 2 :(得分:4)

在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

现在在“外部工具配置”中启动“ ANT任务”(等待远程Java应用程序调试器连接),然后启动“ Debug Ant “来自” Debug “工具栏图标。

答案 3 :(得分:3)

This is how I got it working for me(只是评论以备参考)。

答案 4 :(得分:2)

这是为了帮助那些想知道如何调试使用ant构建和部署的Web应用程序的人。这在遗留应用程序中非常频繁。如果项目以“动态Web项目”作为开头启动,则以下步骤甚至不需要Ant。

在代码中设置断点。

Window -> Show View -> Others -> Servers

例如,添加服务器JBoss或Tomcat。

右键单击服务器并选择“Debug”。

确保在ant build文件中设置了debug =“true”。

答案 5 :(得分:2)

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

答案 6 :(得分:1)

步骤:

1)配置远程java调试器,本地主机为名称,端口地址为 8000 (或者系统的端口地址)

2)创建批处理文件并将其保存在tomcat的bin文件夹中(当我们要远程调试服务器在同一系统中时,需要执行此步骤。)

在批处理文件中你应该保留这一行:

设置JPDA_ADDRESS = 8000

设置JPDA_TRANSPORT = dt_socket

catalina.bat jpda start

之后在你的java代码中保留一个断点,并调试这个远程调试器。它会起作用。

快乐编码!!

答案 7 :(得分:0)

我也遇到了这个问题,我按照以下步骤解决了问题。

  1. 将以下行放在ANT文件中

  2. 转到调试配置 - &gt;远程java应用程序 - &gt;使用项目名称port = 5432创建新配置文件,host为localhost并保存。

  3. 现在使用调试模式运行你的build.xml,然后你应该在控制台中看到&#34;在地址5432&#34;

  4. 收听传输dt_socket
  5. 现在运行您配置的调试配置文件。现在你的selenium代码将使用Debug模式运行。

  6. 希望这有帮助。

    如果您仍然遇到问题,请告诉我,以便我可以帮助您。

    由于