如何使用IDEA編輯器,調試遠程Java代碼?


眾所周知使用IDEA開發時可以通過debug進行調試並快速定位問題,但是如果代碼已發布到遠程服務器上,該如何調試呢?本文將告訴你如何利用IDEA調試遠程服務器上的代碼
本文會先講如何配置參數、調試,然后講各項參數的含義,最后講注意事項。各位在嘗試過程中不需要擔心這個沒看懂,那個是為什么,只需要跟着做就行了。假如看完整篇文章后還有疑問,可以在留言區提問

配置本地參數
打開IDEA的 “Run/Debug Configurations” 選項,配置遠程服務器的IP和端口,如下

紅框中的內容暫時不用管,下一步才會用到在綠框中的第一個輸入框中輸入遠程服務器的ip,第二個輸入框中輸入遠程服務器的端口
配置遠程服務器參數
登錄遠程服務器,打開tomcat的bin文件夾下catalina.sh的文件進行編輯,加入如下配置

export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8185'

以上配置的等號后面的參數來自於第一步紅框中的內容。
大多數情況下,使用紅框中的第一個輸入框的內容作為參數如果遠程服務器上的jdk是1.4版本的,則使用紅框中的第二個輸入框的內容作為參數如果遠程服務器上的jdk是1.3版本的,則使用紅框中的第三個輸入框的內容作為參數
調試
啟動第一步配置好的IDEA服務,在要調試的代碼上打上斷點,當遠程服務器上的程序被訪問時就會進入到斷點中,這時就可以愉快的調試了
啟動IDEA服務點擊如下按鈕

 

 IDEA啟動成功后,控制台輸出如下內容

 

 參數解釋
下圖是第一步配置時的截圖,我們來逐一解釋以下各個參數的含義

 

 先說綠框中的參數

Transport是IDEA和遠程服務器的通訊方式,如果遠程服務器是linux或macos則選擇socket,如果遠程服務器是windows則選擇Shared memory 。

Debugger mode的可選項有Attach和Listen。Attach表示服務端啟動后等待IDEA去連接;Listen表示IDEA監聽服務端的端口,等服務端准備好時會建立連接,此種方式要求服務端能ping通本地電腦的ip。通常使用Attach模式。
Host是遠程服務器的ip,Port是遠程服務器的端口。
再說紅框中的參數

紅框中的參數不允許手動修改,它跟着綠框中參數的修改而發生變化。
-Xrunjdwp:通知JVM使用jdwp(java debug wire protocol)來運行服務器代碼transport的值可選dt_socket和dt_shmem,分別對應綠框中的Socket和Shared memoryaddress對應綠框中的Port,是遠程服務器的端口
注意事項

1. 遠程服務器上的端口必須沒有被占用,並且可以被本地訪問到,可以通過telnet測試,如:telnet 遠程ip 遠程端口

2. 遠程服務器上部署的代碼必須和本地的源代碼保持一致,否則斷點無法進入

3. 配置遠程服務器時,如果JAVA_OPTS參數在catalina.sh中已經存在,則只需要把要配置的參數追加到后面就行 。

 


免責聲明!

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



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