eclipse远程调试
配置参数
程序运行在windows下,编辑catalina.bat
文件,添加:
set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
程序运行在linux下,编辑catalina.sh
文件,添加:
CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
参数说明
- server: 如果值为 y,目标应用程序监听将要连接的调试器应用程序(应用程序为服务器),否则,它将连接到特定地址上的调试器应用程序(eclipse上的项目为服务器)。个人理解:当值为y时,eclipse调试应用程序时,修改代码不能同步到应用程序上,也就是说,你只能看结果;当值为n时,修改eclipse上项目的代码,应用程序也会跟着改变结果(只改变运行结果,调试结束后,应用程序包代码并没有改变)。
- address: 这是连接的传输地址。如果服务器为 n,将尝试连接到该地址上的调试器应用程序。否则,将在这个端口监听连接。
- suspend: 如果值为 y,目标 VM 将暂停,直到调试器应用程序进行连接。
eclipse 设置
配置参数,打开debug configurations
:
server=y,address=8000
server=n,address=ip:port(例如:address=192.168.68.2:8000)
开始调试之后,就跟eclipse本地调试差不多了,不过当server=y时,在eclipse项目里修改代码无法改变项目运行效果,而server=n则可以。
PS:当无法启动时,有可能是已经启动了一个连接,点击图中按钮断开连接再开启调试就可以了。