您的位置:首页 > 编程语言 > Java开发

Eclipse的远程调试(附)

2015-03-06 15:26 127 查看
相信很 多J2EE的开发者都是在Windows上面开发程序,然后把程序上传到Linux下运行的吧。可是有时候在自己机器上运行的好好的程序,放到服务器下就 出错了。单单看出错信息也推断不出是哪里的问题。这时候试试用Java的JPDA远程调试程序,一定可以让你很满意。

服务器端配置

服务器端配置eclipse调试器监听端口,有两中方式:

第一种方式:

tomcat服务器已经内置了JPDA支持,只要用:

catalina.sh jpda start

这条命令启动tomcat,它就会监听8000端口,等待调试器的连接。要注意不能使用 startup.sh脚本。tomcat会使用 JPDA_ADDRESS这个环境变量的值。比如想监听8017端口:

export JPDA_ADDRESS=8017

catalina.sh jpda start

如果不配置JPDA_ADDRESS端口,就会使用默认的8000端口

第二种方式:

配置tomcat主目录下子目录bin中的catalina.sh文件,添加

JAVA_OPTS="$JAVA_OPTS
-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9988"

如果有设置其他的JAVA_OPTS注释掉

说明:server=y
是指目标应用程序作为服务监听将要连接的远程调试器(常用);

suspend=y 是指目标VM将暂停,直到调试器应用程序进行连接(若需要调试启动错误,很有用);

suspend=n 是指目标VM不暂停;

address=9988 监听端口。

直接通过startup.sh启动即可

通过ps -aux|grep tomcat查看启动的tomcat进程,刚才配置的-Xdebug等选项出现在进程信息中,证明配置成功

调试器配置

在本地eclipse中点击debug按钮,选择Debug
Configurations....,如下图



点击选项后,弹出一个窗口,双击左侧Remote
Java Application,如下图



Name:自定义,任意名称

Project:本机eclipse中的WEB项目,与远端服务器上部署的WEB项目一致

Host:被调试的远端服务器ip

Port: 远端服务器中环境变量JPDA_ADDRESS的值

配置完成后点击Apply,随后点击Debug,eclipse窗口右下角出现

这里ConnectionType我们选择的是Standard(Socket Attach)方式调试

等待这个进度条跑完,直到consle的红色按钮变成灰色,此时已经完成了服务器端调试准备



如此可以在本机上对服务器上的代码进行调试了。

注意:服务器端配置的环境变量JPDA_ADDRESS虽然是端口,但是只是调试器监听端口,但是与tomcat中部署项目运行的端口是不一样的,web项目运行端口是在tomcat_home/conf/server.xml中进行配置的,不要混淆

总结

Standard(Socket
Attach)方式进行服务器端监听的优缺点:

先启动远程java程序 然后 启动Eclipse远程调试,然后可以正常调试系统

缺点 :只有java程序启动后才能进行调试,无法调试java程序的启动过程

优点 :可以随时连接到远程java程序进行调试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: