-
Notifications
You must be signed in to change notification settings - Fork 0
Netbeans_Free_Form_Application_Project_Debug
在Netbeans中调试用ant组织的Java源代码
源代码如下
package test.freeform;
/** * * @author Iacob */ public class Main {
public static void main(String args[]) {
int i = 5;
System.out.println("Hello.");
}
}
然後编写一个ant脚本
Toggle line numbers
1 <project name="TestJavaFreeForm" basedir="." default="build">
2
3 <!-- 定义路径 -->
4 <path id="project.classpath">
5 <dirset dir="build" />
6 </path>
7 <path id="project.sourcepath">
8 <dirset dir="src" />
9 </path>
10
11 <!-- 删掉存储class文件的文件夹 -->
12 <target name="clean">
13 <delete dir="build" />
14 </target>
15
16 <!-- 建立build文件夹并将编译产生的class文件放进去 -->
17 <target name="build">
18 <mkdir dir="build" />
19 <javac srcdir="src" destdir="build" debug="on" />
20 </target>
21
22 <target name="debug" depends="build">
23
24 <!-- Netbeans自带的nbjpdastart任务,用来建立用於调试Java程序的Socket服务 -->
25 <nbjpdastart name="My App" addressproperty="jpda.address" transport="dt_socket">
26 <classpath refid="project.classpath"/>
27 <sourcepath refid="project.sourcepath" />
28 </nbjpdastart>
29
30 <!-- 在调试状态运行此程序 -->
31 <java fork="true" classname="test.freeform.Main">
32 <jvmarg value="-Xdebug"/>
33 <jvmarg value="-Xnoagent"/>
34 <jvmarg value="-Djava.compiler=none"/>
35 <jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
36 <classpath refid="project.classpath"/>
37 </java>
38 </target>
39 </project>
逐行讲解:
第19行:
-
debug属性一定要设置成"on",否则编译器不会把行号写入class文件中。
第25行:
-
jpda.address表示Netbeans调试器会把打开的端口号存入jpda.address属性,在下文中可以使用${jpda.address}的形式引用。
-
dt_socket表示数据传输方式是dt_socket。
第27行:
-
如果jar包没有通过IDE的设置和源代码关联,那么一定要通过sourcepath元素设置源代码的路径,否则当调试器运行到断点时IDE无法定位到相应的源代码行。
第31行:
-
将fork设置成true可以让这个程序在单独的JVM里运行。
-
用classname指出想要运行的类。
第35行:
-
设置数据传输方式为dt_socket。
-
使用${jpda.address}引用第25行中调试器设置的端口号,此程序在运行时会连接到此端口,然後我们可以对其进行调试。
然后我们在Netbeans的Projects窗口中右键点击我们要调试的项目,选择Properties,然後在左面的Categories窗口中选择 Build and Run,将Build Project功能映射到ant脚本中的build目标,将来Clean Project功能映射到ant脚本中的clean目标,然后在下面的Mapping of Custom Contextual Menu Items选单中建立一个名为Debug(实际上随便取一个名字就可以)的功能,并将其映射ant脚本中的debug目标。
最后在源代码中设置好断点位置,右键点击我们要调试的项目,选择Clean and Build,然後选择Debug,就可以看到调试结果。
None: NetbeansFreeFormApplicationProjectDebug (last edited 2008-10-10 16:16:10 by Iacob)