<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何使用IDEA編輯器,調(diào)試遠程Java代碼?

          共 1534字,需瀏覽 4分鐘

           ·

          2020-09-24 07:54

          眾所周知使用IDEA開發(fā)時可以通過debug進行調(diào)試并快速定位問題,但是如果代碼已發(fā)布到遠程服務器上,該如何調(diào)試呢?本文將告訴你如何利用IDEA調(diào)試遠程服務器上的代碼

          本文會先講如何配置參數(shù)、調(diào)試,然后講各項參數(shù)的含義,最后講注意事項。各位在嘗試過程中不需要擔心這個沒看懂,那個是為什么,只需要跟著做就行了。假如看完整篇文章后還有疑問,可以在留言區(qū)提問

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


          紅框中的內(nèi)容暫時不用管,下一步才會用到
          在綠框中的第一個輸入框中輸入遠程服務器的ip,第二個輸入框中輸入遠程服務器的端口

          配置遠程服務器參數(shù)
          登錄遠程服務器,打開tomcat的bin文件夾下catalina.sh的文件進行編輯,加入如下配置
          export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8185'
          以上配置的等號后面的參數(shù)來自于第一步紅框中的內(nèi)容。
          大多數(shù)情況下,使用紅框中的第一個輸入框的內(nèi)容作為參數(shù)
          如果遠程服務器上的jdk是1.4版本的,則使用紅框中的第二個輸入框的內(nèi)容作為參數(shù)
          如果遠程服務器上的jdk是1.3版本的,則使用紅框中的第三個輸入框的內(nèi)容作為參數(shù)

          調(diào)試
          啟動第一步配置好的IDEA服務,在要調(diào)試的代碼上打上斷點,當遠程服務器上的程序被訪問時就會進入到斷點中,這時就可以愉快的調(diào)試了

          啟動IDEA服務點擊如下按鈕


          IDEA啟動成功后,控制臺輸出如下內(nèi)容


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

          先說綠框中的參數(shù)

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

          Debugger mode的可選項有Attach和Listen。Attach表示服務端啟動后等待IDEA去連接;Listen表示IDEA監(jiān)聽服務端的端口,等服務端準備好時會建立連接,此種方式要求服務端能ping通本地電腦的ip。通常使用Attach模式。

          Host是遠程服務器的ip,Port是遠程服務器的端口。

          再說紅框中的參數(shù)

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

          注意事項

          1. 遠程服務器上的端口必須沒有被占用,并且可以被本地訪問到,可以通過telnet測試,如:telnet 遠程ip 遠程端口
          2. 遠程服務器上部署的代碼必須和本地的源代碼保持一致,否則斷點無法進入
          3. 配置遠程服務器時,如果JAVA_OPTS參數(shù)在catalina.sh中已經(jīng)存在,則只需要把要配置的參數(shù)追加到后面就行 。

          推薦閱讀:
          Java 15 正式發(fā)布, 好多新特性,刷新你的認知??!
          2020年9月程序員工資最新統(tǒng)計,以及中國編程語言9月排行榜!
          鍵盤敲入 A 字母時,操作系統(tǒng)期間發(fā)生了什么...


          歡迎關(guān)注我的公眾號


          長按上圖,識別圖中二維碼即可關(guān)注

          瀏覽 64
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  精品无码免费一区二区三区 | 丁香婷婷亚洲 | AV电影中文字幕一区 | 狼友视频网| 五月婷婷aa |