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

Java遠(yuǎn)程debug調(diào)試的操作步驟

 更新時(shí)間:2025年04月16日 09:04:05   作者:liyanchao2018  
日常項(xiàng)目中,通常我們的代碼都是部署到遠(yuǎn)程的服務(wù)器,有時(shí)線上出現(xiàn)了問(wèn)題,經(jīng)常需要我們?cè)黾右恍┤罩緛?lái)排查問(wèn)題,但是如果是測(cè)試環(huán)境的場(chǎng)景下或者我們能進(jìn)行遠(yuǎn)程調(diào)試的話,我們就可以使用遠(yuǎn)程的Debug方式進(jìn)行遠(yuǎn)程調(diào)試,下面給大家介紹一下Java遠(yuǎn)程debug調(diào)試的操作步驟

idea啟動(dòng)java項(xiàng)目,debug調(diào)試遠(yuǎn)程項(xiàng)目代碼操作步驟:

1、將項(xiàng)目打成jar包,上傳服務(wù)器,使用命令啟動(dòng)jar

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8889 MyApp

啟動(dòng)命令解析: 這個(gè)命令使用的是主類(lèi)名啟動(dòng),而非 -jar myApp.jar的方式。

1.1、解析啟動(dòng)命令含義

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8889 是一個(gè)用于啟動(dòng) Java 程序并開(kāi)啟遠(yuǎn)程調(diào)試功能的命令。下面為你詳細(xì)解釋該命令中各個(gè)部分的含義:

1.2、整體命令結(jié)構(gòu)

  • java:這是 Java 虛擬機(jī)(JVM)的啟動(dòng)命令,用于執(zhí)行 Java 程序。
  • -agentlib:jdwp:這是一個(gè) JVM 選項(xiàng),用于加載 Java 調(diào)試線協(xié)議(Java Debug Wire Protocol,JDWP)代理庫(kù)。JDWP 是一種允許調(diào)試器與被調(diào)試的 Java 虛擬機(jī)進(jìn)行通信的協(xié)議,借助這個(gè)選項(xiàng)就能讓 JVM 支持遠(yuǎn)程調(diào)試。

1.3、JDWP 選項(xiàng)參數(shù)

  • transport=dt_socket:指定了調(diào)試器與 JVM 之間的通信傳輸方式。dt_socket 表示使用套接字(socket)進(jìn)行通信,也就是通過(guò)網(wǎng)絡(luò)來(lái)傳輸調(diào)試信息,這是最常用的傳輸方式。
  • server=y:表明當(dāng)前 JVM 會(huì)作為調(diào)試服務(wù)器。意味著它會(huì)監(jiān)聽(tīng)一個(gè)指定的端口,等待外部調(diào)試器(如 IDE 中的調(diào)試工具)來(lái)連接。
  • suspend=nsuspend 參數(shù)用于控制 JVM 在啟動(dòng)時(shí)是否暫停執(zhí)行。n 代表 no,即 JVM 啟動(dòng)后不會(huì)暫停,會(huì)正常執(zhí)行 Java 程序,調(diào)試器可以在程序運(yùn)行過(guò)程中隨時(shí)連接進(jìn)行調(diào)試。若設(shè)置為 suspend=y,JVM 啟動(dòng)后會(huì)暫停,直到調(diào)試器連接成功才會(huì)繼續(xù)執(zhí)行。
  • address=8889:指定了 JVM 監(jiān)聽(tīng)的端口號(hào)。這里 JVM 會(huì)在 8889 端口上等待調(diào)試器的連接。在啟動(dòng)調(diào)試器時(shí),需要配置相同的端口號(hào),以確保調(diào)試器能夠與 JVM 建立連接。

1.4、示例場(chǎng)景

假設(shè)你有一個(gè)名為 MyApp 的 Java 程序,完整的啟動(dòng)命令可能如下:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8889 MyApp

此命令會(huì)啟動(dòng) MyApp 程序,并開(kāi)啟遠(yuǎn)程調(diào)試功能,允許外部調(diào)試器通過(guò) 8889 端口連接到該 JVM 進(jìn)行調(diào)試。

2、idea設(shè)置遠(yuǎn)程調(diào)試

idea打開(kāi)java項(xiàng)目后,設(shè)置remote jvm debug,選擇項(xiàng)目模塊,host地址是jar包部署到服務(wù)器的地址,port是使用java命令啟用的等待調(diào)試器鏈接的端口。

3、執(zhí)行debug

點(diǎn)擊debug啟動(dòng)項(xiàng)目,在瀏覽器上輸入:http://10.1.2.133:8889/user/findAll 在idea中findAll方法中打上斷點(diǎn),訪問(wèn)這個(gè)url后,斷點(diǎn)就會(huì)收到調(diào)用,就可以debug調(diào)試項(xiàng)目了。

4、java命令啟動(dòng)項(xiàng)目,使用-jar myApp.jar與主類(lèi)名啟動(dòng)myApp的區(qū)別:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8889 MyApp
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8889 -jar myApp.jar

解析: 服務(wù)器啟動(dòng)java項(xiàng)目,可以啟動(dòng)jar包或者尋找主類(lèi)名啟動(dòng)。

這個(gè)命令不一定非要使用 -jar xxx.jar 來(lái)指定啟動(dòng)的 JAR 包。是否使用 -jar 選項(xiàng)取決于你啟動(dòng) Java 程序的方式。下面為你詳細(xì)分析不同情況:

情況一:使用主類(lèi)名啟動(dòng)

如果你像給出的命令 java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8889 MyApp 這樣,直接指定主類(lèi)名(MyApp)來(lái)啟動(dòng) Java 程序,那么就不需要 -jar 選項(xiàng)。這種方式要求主類(lèi) MyApp 必須位于類(lèi)路徑(classpath)下,JVM 會(huì)在類(lèi)路徑中找到這個(gè)類(lèi)并執(zhí)行其 main 方法。

情況二:使用 JAR 包啟動(dòng)

當(dāng)你想通過(guò) JAR 包來(lái)啟動(dòng) Java 程序時(shí),就需要使用 -jar 選項(xiàng)。此時(shí),你需要把 MyApp 替換為具體的 JAR 包名稱(chēng),例如:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8889 -jar myapp.jar

在這個(gè)命令里,-jar myapp.jar 告知 JVM 從 myapp.jar 這個(gè) JAR 包中尋找主類(lèi)并執(zhí)行。要注意的是,這個(gè) JAR 包必須是可執(zhí)行的,也就是在其 MANIFEST.MF 文件中指定了主類(lèi)。

總結(jié)

是否使用 -jar 選項(xiàng)要依據(jù)你的啟動(dòng)需求來(lái)定:

  • 若主類(lèi)在類(lèi)路徑中,可直接指定主類(lèi)名啟動(dòng),無(wú)需 -jar 選項(xiàng)。
  • 若要從 JAR 包啟動(dòng)程序,則需使用 -jar 選項(xiàng)指定 JAR 包名稱(chēng)。

到此這篇關(guān)于Java遠(yuǎn)程debug調(diào)試的操作步驟的文章就介紹到這了,更多相關(guān)Java遠(yuǎn)程debug調(diào)試內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Bean的包掃描的實(shí)現(xiàn)方法

    Spring Bean的包掃描的實(shí)現(xiàn)方法

    這篇文章主要介紹了Spring Bean的包掃描的實(shí)現(xiàn)方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • 通過(guò)Java添加Word文本框過(guò)程詳解

    通過(guò)Java添加Word文本框過(guò)程詳解

    這篇文章主要介紹了通過(guò)Java添加Word文本框過(guò)程詳解,在Word中,文本框是指一種可移動(dòng)、可調(diào)節(jié)大小的文字或圖形容器。我們可以向文本框中添加文字、圖片、表格等對(duì)象,下面,將通過(guò)Java編程來(lái)實(shí)現(xiàn)添加以上對(duì)象到Word文本框,需要的朋友可以參考下
    2019-07-07
  • Spring框架核心概念小結(jié)

    Spring框架核心概念小結(jié)

    Spring是企業(yè)級(jí)Java的開(kāi)源開(kāi)發(fā)框架。Spring框架的核心功能可用于開(kāi)發(fā)任何java應(yīng)用程序,本文重點(diǎn)給大家介紹Spring框架核心概念總覽,感興趣的朋友跟隨小編一起看看吧
    2022-02-02
  • Jenkins發(fā)送測(cè)試報(bào)告郵件過(guò)程詳解

    Jenkins發(fā)送測(cè)試報(bào)告郵件過(guò)程詳解

    這篇文章主要介紹了Jenkins發(fā)送測(cè)試報(bào)告郵件過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • RocketMQ發(fā)送事務(wù)消息詳解

    RocketMQ發(fā)送事務(wù)消息詳解

    這篇文章主要介紹了RocketMQ發(fā)送事務(wù)消息詳解,RocketMQ分布式事務(wù)消息不僅可以實(shí)現(xiàn)應(yīng)用之間的解耦,又能保證數(shù)據(jù)的最終一致性,傳統(tǒng)的大事務(wù)可以被拆分為小事務(wù),不僅能提升效率,還不會(huì)因?yàn)槟骋粋€(gè)關(guān)聯(lián)應(yīng)用的不可用導(dǎo)致整體回滾,需要的朋友可以參考下
    2023-09-09
  • springboot2.6.4集成swagger3.0遇到的坑及解決方法

    springboot2.6.4集成swagger3.0遇到的坑及解決方法

    這篇文章主要介紹了springboot2.6.4如何集成swagger3.0,在集成的過(guò)程中遇到很多問(wèn)題,本文給大家分享四種問(wèn)題及相應(yīng)的解決方案,需要的朋友可以參考下
    2022-03-03
  • Spring JPA 錯(cuò)題集解決案例

    Spring JPA 錯(cuò)題集解決案例

    這篇文章主要為大家介紹了Spring JPA 錯(cuò)題集解決案例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 關(guān)于pytorch相關(guān)部分矩陣變換函數(shù)的問(wèn)題分析

    關(guān)于pytorch相關(guān)部分矩陣變換函數(shù)的問(wèn)題分析

    這篇文章主要介紹了pytorch相關(guān)部分矩陣變換函數(shù),包括tensor維度順序變換BCHW順序的調(diào)整,矩陣乘法相關(guān)函數(shù),矩陣乘,點(diǎn)乘,求取矩陣對(duì)角線元素或非對(duì)角線元素的問(wèn)題,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • spring?boot自動(dòng)裝配之@ComponentScan注解用法詳解

    spring?boot自動(dòng)裝配之@ComponentScan注解用法詳解

    @ComponentScan的作用就是根據(jù)定義的掃描路徑,把符合掃描規(guī)則的類(lèi)裝配到spring容器中,下面這篇文章主要給大家介紹了關(guān)于spring?boot自動(dòng)裝配之@ComponentScan注解用法的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Java中值傳遞和引用傳遞的區(qū)別

    Java中值傳遞和引用傳遞的區(qū)別

    這篇文章主要介紹了Java中值傳遞和引用傳遞的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評(píng)論