程序运行在windows下,编辑catalina.bat
文件,添加:java
set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
程序运行在linux下,编辑catalina.sh
文件,添加:linux
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 将暂停,直到调试器应用程序进行链接。
配置参数,打开debug configurations
:windows
server=y,address=8000服务器
server=n,address=ip:port(例如:address=192.168.68.2:8000)eclipse
开始调试以后,就跟eclipse本地调试差很少了,不过当server=y时,在eclipse项目里修改代码没法改变项目运行效果,而server=n则能够。socket
PS:当没法启动时,有多是已经启动了一个链接,点击图中按钮断开链接再开启调试就能够了。spa