`

使用Eclipse进行远程调试

阅读更多
今天决定做件有意义的事,写篇图文并茂的blog,为什么要图文并茂?因为很多事可能用语言也说不明白,从以前我发表的一篇文章可以看得出来,http://blog.csdn.net/sunyujia/archive/2008/03/23/2211109.aspx 我的朋友们普通反应看完后觉得不知所云,可能是我写的太简单,下面步入正题。
       什么是远程调试,就是在A机器上利用Eclipse单步跟踪调试B机器上的Web应用,当然调试A机器上Web应用也是没有问题的,90%我都是调试本机的Web应用,远程调试的意义我想我不用说了,大家都会想到它的好处,你可以在本地调试非本地测试环境上的应用,这是件多么美妙的事,所以我就不说它的好处了,那么本地调试呢,我喜欢本地调试也采用下面要介绍的方法,为什么不用myeclipse,WTP,TomcatPlugin等。
         下面我阐述下在eclipse中启动Web应用的缺陷:
我本身是非常喜欢使用Myeclipse 做WEB部署的,但是我不喜欢使用Myeclipse启动tomcat,当然WTP,TomcatPlugin等也不喜欢,使用Myeclipse做部署的好处就是非常灵活,不仅可以部署到Web应用里面还可以任意部署到某一指定路径下。但是使用Myeclipse启动tomcat的话,有如下问题:
         a.卡,比较慢,尤其是同时启动多个应用.
         b.如果断点比较多的时候例如100多个,必须把每个不需要使用的断点先禁用掉或干脆删掉,也就是说web应用启动的时候就已经决定了是debug模式还是run模式。中间不可以切换。
c.一旦eclipse死掉了,web应用也就断掉了。
d.对于程序来说相对路径,类加载路径都是和系统正式运行的情况下完全不同的(要视具体插件而论,每个插件的部署方式都不太一样),即和Web应用独立运行的相对路径和类加载环境有差异,当然熟练的老手可以轻松搞定,但是就目前国内情况看,很多初学者在这个问题上还是很苦恼的。
e.顺便说一句和本话题无关的,eclipse的console并不能完全模拟cmd控制台,一些流操作会有问题。例如:PushbackInputStream
那么使用远程调试的方法做本地调试有什么好处呢?
a.       运行速度比较好。
b.       运行期间可以使用eclipse连接web应用做调试,调试完成后可以断开连接,需要调试的时候可以再重新进行连接,断点的禁用功能可能就很少派上用场了,因为相对于在debug模式和run模式间自由切换。
c.       Web应用是独立运行的,不用担心eclipse死掉即玩完了。
d.       从开发到上线运行,环境一直可以保持一致。
说了半天,没有使用过的人可能还是不了解,没关系,可以看完下面的,再回过头看上面的。
下面我举一个小例子介绍如何进行远程调试.
环境:tomcat,Eclipse,做远程调试不需要任何插件。当然可以使用MyEclipse把Web应用部署到tomcat上面,注意只是部署,一般来讲使用远程调试就不需要配置MyEclipse的Web Server了,MyEclipse在这里只起到一个copy文件的作用,好在现在Myeclipse可以随意指定目录copy了。即 Deployment 对话框中的Custom Location,在这里推荐大家一个copy文件的小插件,有了这个插件就不需要Myeclipse部署了。
FileSync plugin for Eclipse http://andrei.gmxhome.de/filesync/index.html 这个插件的作者还写了很多其他好用的插件,大家可以顺便看下。
       这次例子的源码很简单:
Jsp 源码如下index.jsp
<%com.syj.test.DebugTest.test("sunyujia test");%>
Hello Remote Debug
DebugTest类的test方法中做个断点既可测试
 
下面按步骤进行讲解
1.    web应用部署到Tomcatwebapp目录下
2.    修改Tomcat/bin/startup.bat文件,在最前面加上如下代码
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
注意上面命令必须写成一行中间不能有换行,-前是空格-后是非空格,由于显示器分辨率不同,该文章在显示的时候可能会有换行的情况。
更多Web服务器远程调试参数可参见
3.必须先启动Tomcat启动tomcat/bin/startup.bat参下图
4.在com.syj.test.DebugTest.test方法中设置断点
5在eclipse中配置debug,配置完成后点击debug按钮。如图:
6.打开浏览器访问在第1步部署的web应用,访问index.jsp
7.当浏览器访问index.jsp时,由于调用了com.syj.test.DebugTest.test,又因在test方法中设置了断点,所以程序会被断点拦截,如图:
8.不需要调试的时候点击断开,需要调试的时候再点击debug,非常方便,当调试过程中出现引用非本project的源码时(例如跟踪到tomcat里面或spring,hibernate里面),会提示找不到源码,点击相应提示的按钮(到时候editor区只有一个按钮,所以大家就不要问哪个按钮了)可以添加源码继续调试,或在配置debug前就把需要的源码都添加上,在source选项卡里面,因为具体的基本调试这方面知识不属于本话题讨论范围内,就不过多介绍了。
远程调试就介绍到这里吧。打了这么多字还是比较辛苦的,转载请注明出处,谢谢!
分享到:
评论

相关推荐

    eclipse远程调试tomcat

    ### Eclipse远程调试Tomcat知识点详解 #### 一、概述 在软件开发过程中,尤其是在Web应用开发领域,远程调试是一项非常重要的技术。它可以帮助开发者在不同的环境中(如远程服务器)调试应用程序,这对于查找和...

    eclipse远程调试最完整教程

    ### Eclipse远程调试详解 #### 一、远程调试概念与应用场景 **远程调试**是指开发者能够通过特定工具在一台机器上(通常称为客户端)对另一台机器(服务端)上正在运行的应用程序进行调试的过程。这种方式使得...

    使用 Eclipse 远程调试 Java 应用程序

    Eclipse远程调试的基础是Java Platform Debugger Architecture (JPDA),它由JVM Tool Interface (JVMTI)、Java Debug Interface (JDI)、Java Debug Wire Protocol (JDWP)等组件构成。JPDA定义了一种标准架构,使得...

    利用eclipse进行远程调试

    ### 利用Eclipse进行远程调试 #### 一、引言 随着软件开发项目的规模不断扩大以及团队协作的需求日益增加,远程调试技术变得越来越重要。它允许开发者能够在远程服务器上调试程序,这对于分布式系统或者需要在特定...

    NC eclipse 远程调试

    NC Eclipse 远程调试是指在 Eclipse 集成开发环境中,使用 Java Debug Wire Protocol (JDWP) 实现远程调试 Java 应用程序的功能。JDWP 是一个基于 socket 的通信协议,用于在 debug 客户端和服务器之间传输调试信息...

    eclipse linux 远程调试

    在Linux上使用Eclipse进行远程调试,首先需要确保你的Java项目是可以在Linux环境中运行的。这意味着你需要配置好项目的构建路径,使其包含所有必要的库和依赖,并且要选择正确的JRE系统库,以适应Linux的Java环境。 ...

    使用Eclipse远程调试Linux服务器Tomcat项目

    "使用Eclipse远程调试Linux服务器Tomcat项目" 一、概述 在开发Java Web应用程序时,需要在远程服务器上进行调试,以便更好地了解程序的执行过程。使用Eclipse远程调试Linux服务器Tomcat项目可以帮助开发者更好地...

    Eclipse远程调试教程

    Eclipse远程调试教程 Eclipse 远程调试是指在 Eclipse 中对 Java 应用程序进行远程调试,通过配置 Tomcat 和 Eclipse,可以实现对远程服务器上的 Java 应用程序的调试。下面将详细介绍 Eclipse 远程调试的配置和...

    Eclipse远程调试Tomcat

    标题 "Eclipse远程调试Tomcat" 指的是在Eclipse集成开发环境中,通过远程调试功能连接并调试在另一台机器上运行的Tomcat服务器。这通常用于在生产环境或测试环境中定位和修复代码问题,而无需直接在该环境中安装IDE...

    Eclipse 远程调试Tomcat的应用

    ### Eclipse远程调试Tomcat应用详解 #### 一、前言 在软件开发过程中,调试是不可或缺的一环,尤其是在复杂的分布式系统或服务器端应用中。Eclipse作为一款功能强大的集成开发环境(IDE),提供了丰富的工具来支持...

    IDEA,Eclipse远程调试应用

    Eclipse远程调试项目配置 #### 3.1 选择项目右键选择Debug as 在Eclipse中,右键点击需要远程调试的项目,选择Debug as -&gt; Remote Java Application。 #### 3.2 选择Remote Java Application Eclipse会自动尝试...

    eclipse中远程调试tomcat应用

    本文将详细讲解如何在Eclipse中进行远程调试Tomcat应用,以帮助开发者高效地定位和解决问题。 首先,确保你已经安装了Eclipse IDE和Tomcat服务器。在Eclipse中配置Tomcat服务器,需要在“Window”菜单中选择...

    Eclipse远程调试Java代码

    本篇文章将详细讲解如何在Eclipse中设置和使用远程调试Java代码。 首先,我们需要理解远程调试的基本原理。远程调试允许开发者在本地IDE上对运行在另一台机器上的应用程序进行调试。这通常通过JVM的远程调试接口...

    Eclipse配置Windchill远程调试

    本文将深入探讨如何在Eclipse集成开发环境中配置Windchill的远程调试环境,以便于高效地定位和解决代码中的问题。 首先,我们需要理解Eclipse作为一款强大的Java开发工具,其内置的调试器功能非常强大,支持多种...

    Java开发环境Eclipse远程调试端口配置

    ### Java开发环境Eclipse远程调试端口配置 #### 运行环境配置 为了实现Java Eclipse远程调试功能,首先需要确保本地开发环境与远程服务器环境之间的兼容性和一致性。具体步骤如下: 1. **运行ncSysconfig命令**:...

    eclipse与tomcat、weblogic远程调试小结(windows系统)

    通过以上步骤,你可以在Windows系统上使用Eclipse远程调试运行在Tomcat或WebLogic上的Java应用。在调试过程中,你可以设置断点,查看和修改变量值,调用堆栈等,从而高效地定位和解决问题。记住,调试是软件开发的...

    Eclipse中远程调试Hadoop必备资料

    Eclipse中远程调试Hadoop必备资料:hadoop-eclipse-plugin-1.1.1和hadoop-core-1.0.2-modified;已经在eclipse-jee-juno-SR1-win32-x86_64和hadoop1.1.1 下测试过。

Global site tag (gtag.js) - Google Analytics