欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java進(jìn)行遠(yuǎn)程部署與調(diào)試及原理詳解

 更新時間:2019年12月09日 14:32:45   作者:sunweiye  
這篇文章主要介紹了java進(jìn)行遠(yuǎn)程部署與調(diào)試及原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了java進(jìn)行遠(yuǎn)程部署與調(diào)試及原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

遠(yuǎn)程調(diào)試,特別是當(dāng)你在本地開發(fā)的時候,你需要調(diào)試服務(wù)器上的程序時,遠(yuǎn)程調(diào)試就顯得非常有用。

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

1.本機Intellij IDEA遠(yuǎn)程調(diào)試配置

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

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

3,點擊界面右下角應(yīng)用按鈕即可。

2.服務(wù)器端開啟調(diào)試模式,增加JVM啟動參數(shù),以支持遠(yuǎn)程調(diào)試

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

文本:

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

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

3.Intellij IDEA啟動遠(yuǎn)程調(diào)用

最后,打開IDEA,程序上打上斷點,運行模式選遠(yuǎn)程,點擊運行。調(diào)用服務(wù)器端運行的系統(tǒng)程序,系統(tǒng)自動進(jìn)入斷點

4.為什么可以進(jìn)行遠(yuǎn)程調(diào)試,背后的原理是什么?

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

遠(yuǎn)程調(diào)試原理

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

<code>Java</code>的調(diào)試器架構(gòu)

1.這個架構(gòu)其實質(zhì)還是JVM,只要確保本地的Java的源代碼與目標(biāo)應(yīng)用程序一致,本地的Java的的的的源碼就可以用插座連接到遠(yuǎn)端的JVM,進(jìn)而執(zhí)行調(diào)試。因此,在這種插座連接模式(下文介紹)下,本地只需要有源碼,本地的Java的應(yīng)用程序根本不用啟動。

傳輸方式,默認(rèn)為Socket ;

套接字:MACOS,Linux的系統(tǒng)使用此種傳輸方式;

共享內(nèi)存:WINDOWS系統(tǒng)使用此種傳輸方式。

調(diào)試模式:默認(rèn)為Attach ;

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

  Socket :此種模式下,是我們(調(diào)試客戶端)去監(jiān)聽一個端口,當(dāng)調(diào)試服務(wù)端準(zhǔn)備好了,就會進(jìn)行連接。

配置屬性說明補充


文本:

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

2.各參數(shù)解釋:

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • @Controller、@RestController注解區(qū)別詳解

    @Controller、@RestController注解區(qū)別詳解

    這篇文章主要介紹了@Controller、@RestController注解區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • spring的applicationContext.xml文件與NamespaceHandler解析

    spring的applicationContext.xml文件與NamespaceHandler解析

    這篇文章主要介紹了spring的applicationContext.xml文件與NamespaceHandler解析,Spring容器啟動,在創(chuàng)建BeanFactory時,需要加載和解析當(dāng)前ApplicationContext對應(yīng)的配置文件applicationContext.xml,從而獲取bean相關(guān)的配置信息,需要的朋友可以參考下
    2023-12-12
  • Java編程之如何通過JSP實現(xiàn)頭像自定義上傳

    Java編程之如何通過JSP實現(xiàn)頭像自定義上傳

    之前做這個頭像上傳功能還是花了好多時間的,今天我將我的代碼分享給大家,下面這篇文章主要給大家介紹了關(guān)于Java編程之如何通過JSP實現(xiàn)頭像自定義上傳的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • java設(shè)計模式之外觀模式學(xué)習(xí)筆記

    java設(shè)計模式之外觀模式學(xué)習(xí)筆記

    這篇文章主要為大家詳細(xì)介紹了java設(shè)計模式之外觀模式學(xué)習(xí)筆記,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 使用@Value值注入及配置文件組件掃描

    使用@Value值注入及配置文件組件掃描

    這篇文章主要介紹了使用@Value值注入及配置文件組件掃描方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • idea運行main方法或Test避免編譯整個應(yīng)用的實現(xiàn)方法

    idea運行main方法或Test避免編譯整個應(yīng)用的實現(xiàn)方法

    這篇文章主要介紹了idea運行main方法或Test避免編譯整個應(yīng)用的方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java實現(xiàn)文件壓縮與解壓的示例[zip格式,gzip格式]

    Java實現(xiàn)文件壓縮與解壓的示例[zip格式,gzip格式]

    本篇文章主要介紹了Java實現(xiàn)文件壓縮與解壓的示例[zip格式,gzip格式],具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • 詳解Java創(chuàng)建線程的五種常見方式

    詳解Java創(chuàng)建線程的五種常見方式

    Java中如何進(jìn)行多線程編程,如何使用多線程?不要擔(dān)心,本文將為你詳細(xì)介紹一下Java實現(xiàn)線程創(chuàng)建的五種常見方式,感興趣的可以跟隨小編學(xué)習(xí)一下
    2022-01-01
  • Java接入支付寶授權(quán)第三方登錄的完整步驟

    Java接入支付寶授權(quán)第三方登錄的完整步驟

    不管是支付寶支付,還是微信支付,還是銀聯(lián)支付等,大部分的支付流程都是相似的,這篇文章主要給大家介紹了關(guān)于Java接入支付寶授權(quán)第三方登錄的相關(guān)資料,使用支付寶的沙盒環(huán)境示例,需要的朋友可以參考下
    2021-07-07
  • EL表達(dá)式的隱式對象_動力節(jié)點Java學(xué)院整理

    EL表達(dá)式的隱式對象_動力節(jié)點Java學(xué)院整理

    這篇文章主要介紹了EL表達(dá)式的隱式對象,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07

最新評論