Java远程调试的原理是两个VM之间通过debug协议进行通信,然后以达到远程调试的目的。两者之间可以通过socket进行通信。
1,显首先tomcat/bin目录下catalina.sh或者catalina.bat下加入以下脚本
CATALINA_OPTS=”java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n zhc_application”(不要换行)
这是jdk1.7版本之前的方法,1.7之后可以这样用:
CATALINA_OPTS=“java -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n zhc_application”(不要换行)
jdwp是Java Debug Wire Protocol的缩写。
参数说明:
-Xdebug : 启用调试模式
-Xrunjdwp<sub-options> : 加载JVM的JPDA参考实现库
transport=dt_socket :Socket连接,可选dt_shmem 通过共享内存的方式连接到调试服务器
address=8000 :调试服务器监听的端口
server=y : 是否是服务器端,n为客户端
suspend=n : 启动过程是否加载暂停,y为启动时暂停,方便调试启动过程
2、启动tomcat,看看tomcat是否启动成功,
如果启动成功,tomcat日志文件(catalina.out)中会有如下输出:
Listening for transport dt_socket at address: 8000
3,配置Intelli IDEA
选择Edit Configurations ——>+号(Add New Configuration)——> Remote
第三部千万不要忘记,就是选择远程服务器上对应的项目
其中Host填写的是远程服务器的IP地址,8000就是远程调试的端口。也就是第一步的参数
4,bug启动IDEA
表示成功连接到了远程服务器,可以开始进行Debug