Eclipse调试技术

本文介绍了使用Eclipse进行Java应用程序调试的方法,包括本地调试、远程调试、Tomcat下的Web应用调试及Maven项目的调试技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在编写程序过程中,调试是一个非常重要的环节,甚至有人这样说:“程序是调试出来的,而不是写出来的。”
尽管有些偏激,但认真揣摩,也不无道理。你是不是经常遇到,写一个程序只要5分钟,而调试却花了半个小时甚至2个小时。也有人说,“调试是一门艺术”。常常遇到一个bug,调试了半天都没搞定,于是只好请各“高手”过来指点指点,而他却5分钟就搞定。于是惊叹之余,不免会问,你怎么调试得这么快?其实调试是需要技巧的,当然经验可以帮助你快速的定位问题。调试也是一门很深的学问,因语言、系统、工具等很多方面。而本文只是介绍一些eclipse相关的调试技术,并给出了一些相关的有用文章。

1 Java应用程序的调试
在调试项目之前,要保证项目能够正常编译和运行。打开需要调试的类,光标移至有效的代码行,打开菜单[Run]->Toggle Line Breakpoint来设置,你也可以使用快捷键[Ctrl+Shift+B]设置断点,最方面的就是在代码左边的空白栏处双击即可,这时会出现一个带尾巴的圆圈表示断点。然后开始调试,在工具栏Run->Debug as->Java Application,或者菜单[Run]->Debug as->Java Application,这样就会切换到调试模式视图。你可以单步跟踪,进入函数内部,跳出等方式来执行,可以观察变量的值等,层层深入到内部去分析。

2 远程调试
对于J2EE这样的项目,远程调试就成为一个非常重要的手段了。为了使用Java Dugger,需要设置JPDA端口(默认为1044)。默认的JPDA选项为:-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044。transport=dt_socket 表示通过端口号1044来连接服务器。这种方式可以在Weblogic、WebSphere、JBoss、Tomcat等服务器下调试,其方法大多相似。

3 Tomcat下的Web应用调试
对于Tomcat,除了远程调试以外,还可以借助插件。Sysdeo Tomcat Plugin插件,是一款非常好用的Tomcat插件。使用它就可以调试项目了。至于安装就非常简单了,不再介绍。需要说明的是,如果安装后没有看到插件,可以设置eclipse的-clean启动参数。另外,我在设置Tomcat时,发现启动Tomcat后控制台会出现乱码的情况(我使用的Eclipse是英文,中文可能不会有问题)。如果遇到这种情况,需要在Tomcat->JVM Settings的Bootclasspath添加rt.jar和charsets.jar。注意,Tomcat 4.x和5.x版本的Context声明位置也会有所不同。我使用的是5.5.20版本,Context声明目录为${TOMCAT_HOME}/conf/Catalina/localhost。在建立好Java Project后,并将class编译到web/WEB-INF/classes目录下。
假设位置存放在C:/app/,其目录结构为:

  
                    /
                    |----src
                    |----lib
                    |----web
                          |--WEB-INF
                               |
                               |---classes


在${TOMCAT_HOME}/conf/Catalina/localhost新建一Context文件,内容可以参考manager.xml,大体如下:

<Context path="/app" docBase="C:/app/web" 
  reloadable="true" debug="0" >

  <Logger className="org.apache.catalina.logger.FileLogger"
             prefix="localhost_app_log." suffix=".txt"
          timestamp="true"/>

</Context>


完成后,在eclipse中启动tomcat,如果在控制台看到诸如Server startup in xxxx ms,则表示启动成功。这样就可以进行调试了。

4 Maven项目的调试
注明:这里说的Maven是指Maven2。对于Maven项目,可以使用maven-jetty-plugin。
为了使用jetty,需要在pom.xml中作如下声明。


设置好后,可以在CMD运行mvn jetty:run来检查。关于更多maven-jetty-plugin的配置,可以参考 Jetty Wiki

在完成上面的设置后,开始下面的配置。
1) 打开菜单[Run]->Debug...,新建一个Java Application Launch。设置Main class:org.codehaus.classworlds.Launcher。
2) 在Arguments,设置Program arguments: jetty:run(不是jetty6:run)。
设置VM arguments to "-Xmx512M -Dclassworlds.conf=[MAVEN_HOME]/bin/m2.conf -Dmaven.home=[MAVEN_HOME]"
(MAVEN_HOME填写你系统的实际安装位置)。
3) 在Classpath,删掉user entries下的application,并添加[MAVEN_HOME]/core/boot/classworlds-1.1.jar。这里用的是maven-2.0.5版本,2.0.6会有所不同。
4) 在Source,添加需要调试的项目。

这样,运行后,即可调试了。

5 JUnit的调试
打开Debug perspective,选择一个JUnit test case。选择[Run]->Run AS->JUnit Test。然后再打开[Run]->Debug As->JUnit Test,设置好断点后,就像Java Application那样进行调试了。

A 参考资料
1) 使用 Eclipse 平台进行调试
2) Remote Debugging with Eclipse
3) Debugging JUnit Tests in Eclipse
4) Jetty Document
5) Debugging maven web application with eclipse
6) Debugging a Java Program with Eclipse
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值