我的代码如下所示。
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断点。
感谢回复。
答案 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调试器在这里不可用......