在ANT Build期间未检测到Java文件中的断点

时间:2014-06-13 06:02:00

标签: java ant

我的代码如下所示。

package com.mugil.servlet2;

public class Sample
{
    static
    {
      System.out.println("Hi There");
    }


    public static void main(String[] args) 
    {
      System.out.println("Sample Output1");
      System.out.println("Sample Output2");
    }
}

我正在通过以下脚本启动ANT构建脚本

<?xml version="1.0" encoding="UTF-8"?>
<project name="ANT2" default="copyTarget">
  <target name="copyTarget">
  <mkdir dir="test/classes/"/>
  <javac srcdir="src/com/mugil/servlet2/" destdir="test/classes/" includeantruntime="false"></javac>
    <java classname="com.mugil.servlet2.Sample">
    <classpath path="test/classes/"></classpath>
     </java>
   </target>
</project>

我在静态块的第一行和主块中添加了调试器 enter image description here

当我进行ANT构建时,我无法控制Java断点。

感谢回复。

3 个答案:

答案 0 :(得分:2)

您需要提供允许调试器附加到正在运行的JVM的信息

例如......

<java dir="${target.dir}" jar="${run.jar}" fork="true" jvm="${env.JAVA_HOME}/bin/java" taskname="java1.6">
    <jvmarg value="-agentlib:jdwp=transport=dt_socket,server=y,suspend=${suspend.debug},address=${remote.debug.port}"/>
</java>

这将允许您将“远程”调试器附加到指定端口上的JVM,这是IDE进入的地方......

答案 1 :(得分:1)

断点根本不存在于Java源代码中 - 甚至也不存在于已编译的类文件中。它们纯粹是一个调试时功能 - 调试器指示断点所在的VM。您在IDE中看到的断点以特定于IDE的方式存储;他们预计不会持久保存源代码。

在编译时信息方面的重要性是行号 - 如果你不在课程文件中包含那些,那么显然任何基于行的断点都可以&#39;尝试调试代码时安装。

答案 2 :(得分:0)

这是因为您正在运行已编译的java编码。 Eclipse调试器在这里不可用......