【Java遠程debug】

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

1、遠程debug原理

Java遠程調試的原理是兩個JVM之間經過debug協議進行通訊,而後以達到遠程調試的目的。二者之間能夠經過socket進行通訊。linux

被debug的機器須要開啓debug模式,debug使用的客戶端能夠是eclipse,總之我使用eclipse已經成功了。spring

2、操做步驟

1.服務端設置

因爲咱們常常將程序部署到linux機器上,因此一般使用的是war、tar包或者直接使用可運行的jar包,因爲近來spring-boot的盛行,直接使用可執行的jar包成爲了最流行的部署方式:服務器

jdk1.7以後使用命令:eclipse

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

  • jdwp:是 Java Debug Wire Protocol的縮寫
  • server=y表示是監聽其餘debugclient端的請求
  • address=8000表示服務會在端口號8000監聽debug請求,客戶端必須設置這個端口號才能進行dubug
  • suspend表示是否在調試客戶端創建鏈接以後啓動 VM。若是爲y,那麼當前的VM就是suspend直到有debug client鏈接進來纔開始執行程序。若是你的程序不是服務器監聽模式而且很快就執行完畢的,那麼能夠選擇在y來阻塞它的啓動。

當出現如下提示的時候表示服務端已經使用deubg模式啓動:spring-boot

 

2.客戶端設置

eclipse畢竟仍是咱們最熟悉的IDE,因此使用它做爲dubug的客戶端。測試

  

   

  

3.測試

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

 

相關文章
相關標籤/搜索