内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

IntelliJIDEA遠程DebugLinux的Java程序怎么使用

這篇文章主要介紹“IntelliJ IDEA遠程Debug Linux的Java程序怎么使用”,在日常操作中,相信很多人在IntelliJ IDEA遠程Debug Linux的Java程序怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”IntelliJ IDEA遠程Debug Linux的Java程序怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

站在用戶的角度思考問題,與客戶深入溝通,找到三沙網(wǎng)站設(shè)計與三沙網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站建設(shè)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋三沙地區(qū)。

1 IDEA的debug

我們先來看一下在IntelliJ IDEA直接debug是怎樣的。

先準備一個簡單的Java程序:

package com.pkslow.basic;
import java.util.Map;

public class RemoteDebug {
    public static void main(String[] args) {
        System.out.println("------------------start------------------");
        
        System.out.println("get all the system environment");
        Map<String, String> envs = System.getenv();

        System.out.println("\nprint out the contains `HOME`");
        System.out.println("------env HOME------");
        envs.entrySet().stream()
                .filter(env -> env.getKey().contains("HOME"))
                .forEach(env -> {
                    System.out.println(env.getKey() + ":" + env.getValue());
                });

        System.out.println("------------------end------------------");
    }
}

功能很簡單,獲取所有系統(tǒng)環(huán)境變量,并打印出含有HOME字段的。

Debug很簡單,直接點擊以下按鈕就可以:

IntelliJ IDEA遠程Debug Linux的Java程序怎么使用

相信大家都知道這一點,但應(yīng)該很多人都不會注意,IDEA究竟做了什么,為什么就可以調(diào)試了呢?我們看一下控制臺的日志就明白了:

/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:59313,suspend=y,server=n -javaagent:/Users/pkslow/Library/Caches/IntelliJIdea2019.3/captureAgent/debugger-agent.jar -Dfile.encoding=UTF-8 -classpath "/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/charsets.jar:" com.pkslow.basic.RemoteDebug
Connected to the target VM, address: '127.0.0.1:59313', transport: 'socket'

簡化一下,不重要的參數(shù)去掉:

java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:59313,suspend=y,server=n com.pkslow.basic.RemoteDebug

這就是可以Debug的原因,利用了Java Agent原理。這個功能很強大,類似一個AOP,代理了Java程序,可以利用它進行調(diào)試、熱部署等。

2 調(diào)試本地程序

我們先試試如何可以調(diào)試本地程序,不是直接在IDEA上調(diào)試。先要編譯出class文件RemoteDebug.class,然后按package結(jié)構(gòu)放好。我通過mvn clean compile來編譯。

啟動程序,在target/classes/目錄執(zhí)行:

$ java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:50050,suspend=y,server=y com.pkslow.basic.RemoteDebug
Listening for transport dt_socket at address: 50050

然后程序就會等待調(diào)試客戶端的連接,不會往下執(zhí)行。

配置IDEA以進行調(diào)試:

IntelliJ IDEA遠程Debug Linux的Java程序怎么使用

配置完成保存后,點擊debug就可以了:

IntelliJ IDEA遠程Debug Linux的Java程序怎么使用

程序已經(jīng)進入debug模式:

IntelliJ IDEA遠程Debug Linux的Java程序怎么使用

我們已經(jīng)執(zhí)行到了其中一行,現(xiàn)在看看服務(wù)端:

IntelliJ IDEA遠程Debug Linux的Java程序怎么使用

IDEA是同步的,并且確實已經(jīng)控制了服務(wù)端Java的執(zhí)行。

3 遠程調(diào)試Linux Java程序

先把程序部署在Linux上:

$ scp -P 22 ./com/pkslow/basic/RemoteDebug.class root@xxx.xx.xx.xxx:/root/remoteDebug/com/pkslow/basic/
RemoteDebug.class                              100% 2572   282.5KB/s   00:00

通過以下命令在服務(wù)端啟動程序,這里調(diào)試端口改為9999,因為部分端口在遠程服務(wù)器并沒有開啟:

java -agentlib:jdwp=transport=dt_socket,address=9999,suspend=y,server=y com.pkslow.basic.RemoteDebug

本地電腦IDEA配置如下:

IntelliJ IDEA遠程Debug Linux的Java程序怎么使用

開始debug,正??刂屏诉h程服務(wù)端的Java

IntelliJ IDEA遠程Debug Linux的Java程序怎么使用

服務(wù)端的實時執(zhí)行情況:

IntelliJ IDEA遠程Debug Linux的Java程序怎么使用

讓程序執(zhí)行完如下:

$ java -agentlib:jdwp=transport=dt_socket,address=9999,suspend=y,server=y com.pkslow.basic.RemoteDebug
Listening for transport dt_socket at address: 9999
------------------start------------------
get all the system environment

print out the contains `HOME`
------env HOME------
JAVA_HOME:/root/jdk1.8.0_131
HOME:/root
------------------end------------------

到此,關(guān)于“IntelliJ IDEA遠程Debug Linux的Java程序怎么使用”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

新聞標題:IntelliJIDEA遠程DebugLinux的Java程序怎么使用
網(wǎng)站鏈接:http://www.rwnh.cn/article36/gpodsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、Google用戶體驗、靜態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站網(wǎng)站設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營
郸城县| 巴马| 扶沟县| 芦山县| 高要市| 信宜市| 宣汉县| 中宁县| 黔江区| 长治市| 固原市| 平邑县| 丁青县| 垦利县| 阳泉市| 本溪| 易门县| 门头沟区| 海安县| 旅游| 岐山县| 临海市| 应用必备| 岳西县| 布尔津县| 宁陕县| 洱源县| 唐海县| 寿阳县| 高台县| 临夏市| 卢湾区| 合作市| 砚山县| 马山县| 剑河县| 肥东县| 镇安县| 天气| 留坝县| 岐山县|