91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java進行遠程部署與調試的原理

發布時間:2021-09-14 03:17:05 來源:億速云 閱讀:208 作者:chen 欄目:編程語言

本篇內容介紹了“java進行遠程部署與調試的原理”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

遠程調試,特別是當你在本地開發的時候,你需要調試服務器上的程序時,遠程調試就顯得非常有用。

JAVA 支持調試功能,本身提供了一個簡單的調試工具JDB,支持設置斷點及線程級的調試同時,不同的JVM通過接口的協議聯系,本地的Java文件在遠程JVM建立聯系和通信。此篇是Intellij IDEA遠程調試的教程匯總和原理解釋,知其然而又知其所以然。遠程部署點擊

1.本機Intellij IDEA遠程調試配置

1,打開Inteliij IDEA,頂部菜單欄選擇Run-> Edit Configurations,進入下圖的運行/調試配置界面。

2,點擊左上角'+'號,選擇Remote。分別填寫右側三個紅框中的參數:Name,Host(想要指定的遠程調試端口)。

3,點擊界面右下角應用按鈕即可。

2.服務器端開啟調試模式,增加JVM啟動參數,以支持遠程調試

服務器端的catalina.sh文件,在Tomcat的安裝目錄下,復制到本地,進行編輯,在第一行添加參數配置如下,完成后粘貼回去。

文本:

CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8089"

配置添加之后,重啟tomcat即可生效(shutdown.sh /startup.sh)。到此,開始遠程調試。

3.Intellij IDEA啟動遠程調用

最后,打開IDEA,程序上打上斷點,運行模式選遠程,點擊運行。調用服務器端運行的系統程序,系統自動進入斷點

4.為什么可以進行遠程調試,背后的原理是什么?

首先,了解下的Java程序的執行過程- 分為以下幾個步驟:Java的文件 - -編譯生成的類文件(class文件) - - JVM加載類文件 - - JVM運行類字節碼文件 - - JVM翻譯器翻譯成各個機器認識的不同的機器碼。

遠程調試原理

眾所周知,Java 程序是運行在Java 虛擬機(JVM )上的,具有良好跨平臺性,是因為Java程序統一以字節碼的形式在JVM中運行,不同平臺的虛擬機都統一使用這種相同的程序存儲格式。因為都是類字節碼文件,只要本地代碼和遠程服務器上的類文件相同,兩個JVM通過調試協議進行通信(例如通過插座在同一個端口進行通信),另外需要注意的時,被調試的服務器需要開啟調試模式,服務器端的代碼和本地代碼必須保持一致,則會造成斷點無法進入的問題。

<code>Java</code>的調試器架構

1.這個架構其實質還是JVM,只要確保本地的Java的源代碼與目標應用程序一致,本地的Java的的的的源碼就可以用插座連接到遠端的JVM,進而執行調試。因此,在這種插座連接模式(下文介紹)下,本地只需要有源碼,本地的Java的應用程序根本不用啟動。

傳輸方式,默認為Socket ;

套接字:MACOS,Linux的系統使用此種傳輸方式;

共享內存:WINDOWS系統使用此種傳輸方式。

調試模式:默認為Attach ;

  Attach :此種模式下,調試服務端(被調試遠程運行的機器)啟動一個端口等待我們(調試客戶端)去連接;

  Socket :此種模式下,是我們(調試客戶端)去監聽一個端口,當調試服務端準備好了,就會進行連接。

配置屬性說明補充

文本:

CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8089"

2.各參數解釋:

-Xdebug:通知JVM工作在調試模式下  -Xrunjdwp:通知JVM使用(java debug wire protocol)來運行調試環境。參數同時有一系列的調試選項:  <code>session</code>:指定了調試數據的傳送方式,dt_socket是指用SOCKET模式,另外dt_shmem指用共享內存方式,其中dt_shmem只適用于窗口平臺.server 參數是指是否支持在服務器模式的虛擬機中。  onthrow:指明當產生該類型的異常時,JVM就會中斷下來,進行調式該參數任選。  <code>release</code>:指明當JVM被中斷下來時,執行的可執行程序該參數可選  <code>suspend</code><:指明:是否在調試客戶端建立起來后,再執行 JVM。  onuncaught(= y或n)指明出現未捕獲的異常后,是否中斷JVM的執行

“java進行遠程部署與調試的原理”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德令哈市| 龙南县| 抚宁县| 崇左市| 慈利县| 泸溪县| 商洛市| 郸城县| 宣武区| 宁化县| 孟村| 高邮市| 垦利县| 柯坪县| 商都县| 大冶市| 长武县| 三河市| 阿尔山市| 桃园市| 临夏县| 岚皋县| 莫力| 远安县| 广水市| 邵阳市| 安龙县| 正安县| 休宁县| 五常市| 英吉沙县| 六盘水市| 滨海县| 新和县| 桓台县| 顺平县| 札达县| 湛江市| 鹤庆县| 敖汉旗| 上蔡县|