Eclipse调试技术
来源:互联网 发布:剑桥商务英语 知乎 编辑:程序博客网 时间:2024/05/17 07:23
在编写程序过程中,调试是一个非常重要的环节,甚至有人这样说:“程序是调试出来的,而不是写出来的。”
尽管有些偏激,但认真揣摩,也不无道理。你是不是经常遇到,写一个程序只要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/,其目录结构为:
在${TOMCAT_HOME}/conf/Catalina/localhost新建一Context文件,内容可以参考manager.xml,大体如下:
完成后,在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
尽管有些偏激,但认真揣摩,也不无道理。你是不是经常遇到,写一个程序只要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
- Eclipse调试技术
- 调试技术
- 调试技术
- 调试技术
- 调试技术
- 调试技术
- 调试技术
- 调试技术
- eclipse调试
- eclipse调试
- Eclipse调试
- eclipse调试
- eclipse调试
- eclipse调试
- Eclipse 调试
- 调试 eclipse
- Eclipse调试
- eclipse调试
- 端口大全+注解
- 找出最近路线
- C#附加数据库的思路跟算法
- 判断文件的类型
- symbian自定义动态菜单
- Eclipse调试技术
- 够专业,就不拍失业(转载)
- 更改表用户
- C#多线程写日志
- Java程序中遇到的乱码问题以及解决方法
- 定义一个DataGridViewTextBoxColumn使其可以设置列标题显示的位置
- 全文检索使用
- mssql 字增自段怎样重置(重新自增)|清空表已有数据
- 转:尚不曾被发现的手机广告