ANT构建期间未检测到Java文件中的断点

ANT构建期间未检测到Java文件中的断点,java,ant,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("Samp

我有一个类似下面的代码

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>

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

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


感谢您的回复。

断点在Java源代码中根本不存在,甚至在编译的类文件中也不存在。它们纯粹是一种调试时功能—调试器指示VM断点的位置。您在IDE中看到的断点以特定于IDE的方式存储;不希望它们与源代码一起持久化


就编译时信息而言,重要的是行号——如果在类文件中没有包含这些行号,那么在调试代码时,显然无法安装任何基于行的断点。

这是因为您正在运行已编译的java代码。
Eclipse调试器在此处不可用…

您需要提供允许调试器连接到正在运行的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的作用所在…

构建不是运行@Smutje但是你可以从antIs执行
java
命令有一种方法可以在java文件中的断点处停止我想你应该首先知道为什么要使用ANT,以及可以用它做什么。它与代码中的断点没有任何关系。jar中的代码不能有断点。在ide代码中放置断点以进行调试,感谢回复。我们在out项目中所做的是通过调用BeangGenerator.java来使用xml文件生成bean,BeangGenerator.java读取xml文件并相应地生成bean。此过程通过ANT codegen文件进行。有没有方法在执行此操作时跟踪代码的各个部分。也就是在运行时ANT脚本。@Java初学者:我不知道你说的“跟踪代码部分”是什么意思。如果您在构建过程中运行某个代码,但出现了问题,则只需添加更多诊断,或者在调试器中手动运行该代码并以这种方式进行调试。