用于调试的 ant 任务不起作用:原因:名称未定义

ant task for debugging not working: Cause: the name is undefined

我想将 NetBeans 附加到我正在编写的 Java 程序以帮助调试。我在我的 ant 文件中添加了一个 "debug" 目标,期望这将在端口 54322 上启动调试器,然后 NetBeans 可以附加到该端口。这在过去的某个时候奏效了,但与此同时我一定搞砸了。谁能帮我找出语法错误?

ant debug

只会启动程序,不会启动调试器。程序结束后,在终端中打印:

build.xml:55: Problem: failed to create task or type jvmarg
Cause: The name is undefined.

在编译任务中,我包含了调试选项:

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

这是 "debug" 任务(包括行号)。您看到第 55 行是蚂蚁抱怨未定义名称的地方。

53 <target name="debug" depends="jar">
54    <java jar="${jar.dir}/${ant.project.name}_ClearText.jar" fork="true"/>
55    <jvmarg line="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=54322" />
56 </target>

jvmarg 必须嵌套在 java 任务调用中:

<target name="debug" depends="jar">
   <java jar="${jar.dir}/${ant.project.name}_ClearText.jar" fork="true">
       <jvmarg line="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=54322" />
   </java>
</target>