【Java遠程debug】


轉自 http://blog.csdn.net/hongchangfirst/article/details/44191925

一、遠程debug原理

Java遠程調試的原理是兩個JVM之間通過debug協議進行通信,然后以達到遠程調試的目的。兩者之間可以通過socket進行通信。

被debug的機器需要開啟debug模式,debug使用的客戶端可以是eclipse,總之我使用eclipse已經成功了。

二、操作步驟

1.服務端設置

由於我們經常將程序部署到linux機器上,所以通常使用的是war、tar包或者直接使用可運行的jar包,由於近來spring-boot的盛行,直接使用可執行的jar包成為了最流行的部署方式:

jdk1.7之后使用命令:

java -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n -jar you-runnable-jar.jar

  • jdwp:是 Java Debug Wire Protocol的縮寫
  • server=y表示是監聽其他debugclient端的請求
  • address=8000表示服務會在端口號8000監聽debug請求,客戶端必須設置這個端口號才能進行dubug
  • suspend表示是否在調試客戶端建立連接之后啟動 VM。如果為y,那么當前的VM就是suspend直到有debug client連接進來才開始執行程序。如果你的程序不是服務器監聽模式並且很快就執行完畢的,那么可以選擇在y來阻塞它的啟動。

當出現以下提示的時候表示服務端已經使用deubg模式啟動:

 

2.客戶端設置

eclipse畢竟還是我們最熟悉的IDE,所以使用它作為dubug的客戶端。

  

   

  

3.測試

使用客戶端發起一個請求,可以直接eclipse會直接進入debug模式。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM