Eclipse远程Debug linux上的项目

实际开发过程中可能会遇到好几个环境,如本地、开发、测试、生产等,然而这些环境一般我们都会使用linux系统,这个时候如果仅仅是某个环境出现问题,我们不好确定时这个时候就需要用到远程调试了

这个时候你需要知道JPDA这个概念:

      Java Platform Debugger Architecture(JPDA:Java平台调试架构) 由Java虚拟机后端和调试平台前端组成 
    1.Java虚拟机提供了Java调试的功能 
    2.调试平台通过调试交互协议向Java虚拟机请求服务以对在虚拟机中运行的程序进行调试

一、首先我们必须要在本地有项目的代码,注意代码要跟远程的项目一模一样否则可能Debug出的效果跟实际的不一样

二、启动tomcat的jpda支持

由于默认的tomcat启动命令是:./catalina.sh start 这是没有启动我们的jpda服务的,所以我们需要启动tomcat的jpda支持

a、通过ps -ef|grep tomcat命令可以查看tomcat的进程

b、然后kill -9 加进程 退出tomcat

c、启动tomcat的jpda支持./catalina.sh jpda starttomcat默认的jpda服务的端口是8000这个会在调试的时候用到,如果想要看是否启动成功可以用netstat -an|grep 8000命     令

三、打开eclipse 依次点击Debug->Debug Configurations 然后新建一个Remote Java Application,这里的 project 是指的项目名就是需要调试的项目,Host是远程linux的地址

port是jpda的端口,默认就是8000,完成后直接点击Debug然后看见eclipse上出现图标表示连接成功了,然后在代码中添加断点就可以进行调试了

Eclipse远程Debug linux上的项目Eclipse远程Debug linux上的项目Eclipse远程Debug linux上的项目Eclipse远程Debug linux上的项目

 

上面全部完成,都顺利的时候还是发现调试时发现不能F6只能F8,并且也看不到变量的值找到Debug窗口,然后这里会有很多线程,大部分线程后面状态都是running,找到不少running状态的线程,选中需要调试的线程这个时候就可以了

Eclipse远程Debug linux上的项目