Eclipse 遠程調試 Tomcat 是 Java Web 開發必備技能。本文提供從啟動配置到斷點操作、熱替換、變量修改、表達式求值的完整操作指南,助你像調試本地主類一樣調試線上/測試環境代碼。
Servers 視圖管理)。Run As → Run on Server)。Servers 視圖雙擊 Tomcat 實例 → 打開配置編輯器。-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
Listening for transport dt_socket at address: 8000 即成功。# Linux/Mac: catalina.sh
export JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000"
# Windows: catalina.bat
set JAVA_OPTS=%JAVA_OPTS% -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
然後在 Eclipse Run → Debug Configurations → Remote Java Application 新建配置:Host=localhost, Port=8000,點擊 Debug 連接。
user.getId() == 1001),僅滿足條件時掛起。| 快捷鍵 | 動作 | 說明 |
|---|---|---|
| F8 | Resume (繼續執行) | 運行到下一個斷點或程序結束 |
| F5 | Step Into (單步進入) | 進入方法內部,逐行執行 |
| F6 | Step Over (單步跳過) | 執行當前行,不進入方法內部 |
| F7 | Step Return (單步返回) | 執行完當前方法剩餘代碼,返回調用處 |
| Ctrl+Shift+B | Toggle Breakpoint | 快速設置/移除斷點 |
| Ctrl+Shift+I | Inspect (檢查表達式值) | 選中表達式彈窗顯示值 |
| Ctrl+Shift+D | Display (執行表達式) | 在 Display 視圖執行代碼片段 |
new ClassName() 或現有對象 ID)。userService.findById(1)) → 右鍵 Inspect → 結果顯示在浮動窗口/Expressions 視圖。list.size() > 0),每次掛起自動求值顯示。Window → Show View → Display,可編寫任意代碼片段執行(如創建對象、調用靜態方法、修改集合),類似 REPL。Hot code replace)。調試進入無源碼類(如第三方 Jar、JDK 類)時提示 Source not found:
rt.jar 對應 src.zip,Maven 依賴右鍵 Maven → Download Sources)。Window → Preferences → Java → Debug → Source Lookup Path 添加項目源碼路徑。work/Catalina/localhost//org/apache/jsp/ 。Debug Configurations → Source 添加 JSP 編譯輸出目錄。熟練掌握 Eclipse 遠程調試,能將定位 Bug 時間從小時級壓縮到分鐘級。核心口訣:斷點精準、變量可改、表達式可執行、熱替換可驗證,讓調試成為理解代碼運行真相的顯微鏡。