程序運行在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