在做遠端偵錯時,在windows系統和非windows系統下的配置,Tomcat中會有所差別,具體如下:
第一步、配置tomcat
一、在windows系統中:
開啟%CATALINE_HOME%/bin下的檔案catalina.bat,加入下面這行:
set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787
其中address=8787是沒被使用的連接埠號碼。串連方式有兩種,為dt_shmem和dt_socket,分別表示本機調試和遠端偵錯。
二、在非windows系統中:
還需要把% CATALINE_HOME %/bin/startup.sh中的最後一行exec "$PRGDIR"/"$EXECUTABLE" start "$@" 中的start改成jpda start。由於預設的連接埠是8000,所以如果8000連接埠已有他用的話,還需在catalina.sh檔案中設定:JPDA_ADDRESS=8787。
輸入命令startup.sh或者catalina.sh jpda start就可啟動tomcat。
第二步、配置eclipse
在Eclipse中選擇RunDebug,在彈出的對話方塊中右擊Remote Java Application建立一個遠端偵錯項,如下如所示:
在“Name”輸入框中輸入遠端偵錯的名稱,在“Project”中選擇要調試的項目,在“Host”中輸入需要遠端偵錯項目的IP,也就是tomcat所在的IP,在“Port”中輸入設定的連接埠號碼,比如上面設定的8787,然後鉤選“Allow termination of remote VM”,點擊“Apply”即可。
設定完後就可以開始調試了,大概分一下幾步:
1、啟動tomcat(遠程),如在控制台輸出“Listening for transport dt_socket at address: 8787”,即說明在tomcat中設定成功;
2、在本機設定斷點,即在需要監視的程式碼前雙擊就會出現一個小圓點;
3、進入介面,選擇要調試的項,點擊“Debug”即可進行遠端偵錯;
4、當運行到設定了斷點的程式碼處即可看到如所示的淺綠條。
按鍵動作:
1、F5鍵與F6鍵均為單步調試,F5是進入本行代碼中執行,F6是執行本行代碼,跳到下一行;
2、F7是跳出函數;
3、F8是執行到最後。
當然,為了方便,可以建立一個批次檔,假如取名為debug.bat,在這個檔案中加入下面幾行:
cd %CATALINE_HOME%/bin
set JPDA_ADDRESS=8787
set JPDA_TRANSPORT=dt_socket
set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787
startup
這樣需要遠端偵錯時,運行debug.bat即可;不需要遠端偵錯時,還是運行startup.bat檔案。