如何在Eclipse中使用ANT脚本时debuggingJava代码

我有一个Java类,我需要debugging它(把断点,继续使用F6)。 我正在使用ANT脚本来初始化,构build,部署和运行代码。 我在用:

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

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

我错过了什么?

<java> ant任务中,你应该添加两个jvm参数( <jvmarg> IIRC)来打开debugging:

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

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

(不能评论给定的答案,所以不得不作出另一个答案)

我意识到,从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> 

这是我如何为我工作 (只是评论未来的参考)。

这是为了帮助那些想知道如何debugging使用ant的Web应用程序来构build和部署的人。 这在传统应用程序中相当频繁。 如果项目是以“dynamicWeb项目”开始的,那么下面的步骤甚至是Ant就没有必要了。

在您的代码中设置中断点。

 Window -> Show View -> Others -> Servers 

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

右键单击服务器,然后select“debugging”。

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

 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 

在Eclipse中:

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

“虚拟机参数”中添加:

-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 

现在在“ 外部工具configuration ”中启动“ ANT Task ”(等待Remote Java Applicationdebugging器连接),然后从“ Debug ”工具栏图标启动“ Debug Ant ”。

脚步:

1)configuration远程Javadebugging器与本地主机的名称,端口地址8000 (或任何您系统的端口地址将是)

2)创build一个batch file,并将其保存在tomcat的bin文件夹中(当远程debugging需要在同一个系统中保存服务器时,这一步是必需的)。

在batch file中,你应该保留这一行:

设置JPDA_ADDRESS = 8000

设置JPDA_TRANSPORT = dt_socket

catalina.bat jpda开始

在java代码中保留一个断点之后,debugging这个远程debugging器。 它会工作。

快乐编码!

我也面临这个问题,我做了以下步骤来解决。

  1. 将下面的行放在ANT文件中

  2. 转到debuggingconfiguration – >远程Java应用程序 – >用项目名称创build新的configuration文件,端口= 5432和主机是本地主机,并保存它。

  3. 现在使用debugging模式运行你的build.xml,然后你应该在控制台中看到“在地址5432上监听transport dt_socket”

  4. 现在运行你configuration的debuggingconfiguration文件。 现在,您的selenium代码将使用debugging模式运行。

希望这可以帮助。

如果你仍然面临问题,请让我知道,以便我可以帮助你。

谢谢