步驟:
- 配置遠端java應用的jvm參數
- 在eclipse中新建遠程調試的配置
- 啓動遠端java應用
- 在eclipse中啓動調試
1. 配置遠端Java應用的jvm參數
通常java應用的啓動是通過傳入jvm參數然後調用java可執行程序實現,類似下面這樣:
/usr/bin/java -Xmx2g -XX:+UseG1GC -cp /opt/demo/lib/* com.demo.Hello
要支持遠程調試,需要在jvm啓動參數中指定如下參數:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=19004
- -agentlib 指定代理庫參數
- jdwp 代理庫名稱(Java Debug Wire Protocol)
- transport=dt_socket 通信方式採用 socket(dt的含義不明)
- server=y 遠端應用扮演服務器角色,監聽調試進程的連接
- suspend=y 遠端應用啓動時掛起,直到調試進程連接成功
- address=19004 遠端應用作爲服務器監聽的本地端口(等待調試進程連接此端口)
注意:suspend=y在調試任務結束後,既想要保留配置,又需要恢復正常使用時,可以改成 suspend=n 避免啓動時掛起。確定不需要調試,則將整個 -agentlib 參數去掉。
2. 在eclipse中新建遠程調試的配置
3. 啓動遠端java應用
遠端應用按配置之前的原始方式啓動,觀察日誌進程建立後,將會進入掛起狀態,不再產生日誌,如下圖所示:
4. 在eclipse中啓動調試
在eclipse的調試菜單中,點擊調試,選擇剛纔創建的配置,即可啓動調試進程。