有时间,我们上传至远程服务器的java程序代码,可能会有一定运行时问题,
但在本机测试时没有问题!这时最想做的就是调试一下远程服务器上的代码,
但由于环境条件我们一般都无法直接在远程服务器上进行代码的调试,
基于以上原因JAVA的jvm规范为我们提供了一个JPDA(JAVA platform debug archicture),
制定了相关的调试规范,该规范就定义了远程调试java代码的规则。
在java的调试规范中,共分为两类:debugger和debuggee,即调试器和需要调试的程序进程,
在调试模式启动过程中,debugger首先启动,然后加载debuggee进程,这样需要调试的程序进程即进入可以调试的模式;
我们日常开发时,经常在eclipse进行单机模式的java代码调试工作。下面主要说明一下结合eclipse+tomcat进行远程服务器代码的调试配置步骤:
1.首先需要在服务器的tomcat java启动脚本(catalina.bat)中增加如下配置:
set JAVA_OPTS=%JAVA_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n
其中-Xdebug 表示启动调试模式 -Xrunjdwp 表示使用java debug wire protocol接口规则,
transport=dt_socket使用socket连接方式在debugger与debuggee之间进行通讯,这时eclipse扮演的即是debugger角色,而tomcat扮演debuggee角色
server=y表示是远程调试程序的服务器端 address=8000表示调试线程在8000端口进行监听
suspend=y/n表示是否需要等客户端连接至服务器后,再继续加载jvm后继的工作,为y(默认值)时,则服务器启动时,会等待调试客户端连接上服务器后,再继续进行后继的加载工作;
2.客户端eclipse的配置
(1)首先在eclipse的程序项目的debug选项界面中配置相应的调度服务器地址
(2)启动debug
(3)调试过程与在单机上进行调试操作一样,在相应的类上打断点,程序运行至该功能类后,会暂停在相应的类的断点处;
3.关闭客户端的debug进程,tomcat的服务器程序也自动关闭