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

技术IntelliJ IDEA远程Debug Linux的Java程序怎么使用这篇文章主要介绍“IntelliJ IDEA远程Debug Linux的Java程序怎么使用”,在日常操作中,相信很多人在IntelliJ I

本文主要介绍“如何使用智能远程调试Linux的Java程序”。在日常操作中,相信很多人对于如何使用IntelliIdea远程调试Linux的Java程序都有疑问。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮你解答“如何使用IntelliIdea远程调试Linux的Java程序”的疑惑!接下来,请和边肖一起学习!

00-1010我们先来看看在IntelliJ IDEA中直接调试是什么感觉。

首先准备一个简单的Java程序:

package com . pkslow . basic;

import Java . util . map;

publicclassRemoteDebug{

publicationstativitmain(String[]args){ 0

system . out . println('-start-');

system . out . println(' getallthesystemenvironment ');

MapString,Stringvs=system . getenv();

system . out . println(' \ nprint outthecontains ` home ` ');

system . out . println('-EnvHome-');

envs.entrySet()。流()。过滤器(env-env.getKey()。包含(' HOME ')。forEach(env-{ 0

system . out . println(env . GetKey()' : ' env . GetVaLue());

});

system . out . println('-end-');

}

}功能很简单。获取所有系统环境变量并打印出带有HOME字段的。

调试很简单,只需点击以下按钮:

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

相信大家都知道这一点,但很多人应该不会注意到。IDEA做了什么,为什么可以调试?让我们看看控制台

的日志就明白了:

/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'

简化一下,不重要的参数去掉:

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程序,可以利用它进行调试、热部署等。

2 调试本地程序

我们先试试如何可以调试本地程序,不是直接在IDEA上调试。先要编译出class文件RemoteDebug.class,然后按package结构放好。我通过mvn clean compile来编译。

启动程序,在target/classes/目录执行:

$ 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

然后程序就会等待调试客户端的连接,不会往下执行。

配置IDEA以进行调试:

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

配置完成保存后,点击debug就可以了:

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

程序已经进入debug模式:

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

我们已经执行到了其中一行,现在看看服务端:

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

IDEA是同步的,并且确实已经控制了服务端Java的执行。

3 远程调试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

通过以下命令在服务端启动程序,这里调试端口改为9999,因为部分端口在远程服务器并没有开启:

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

本地电脑IDEA配置如下:

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

开始debug,正常控制了远程服务端的Java

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

服务端的实时执行情况:

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

让程序执行完如下:

$ 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------------------

到此,关于“IntelliJ IDEA远程Debug Linux的Java程序怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/126281.html

(0)

相关推荐

  • 1千伏安等于多少千瓦,KVA与KW有什么区别

    技术1千伏安等于多少千瓦,KVA与KW有什么区别KVA与KW有什么区别?答:KVA是视在功率(S)的表示方法1千伏安等于多少千瓦。它指交流电源所能提供的总功率称为视在功率或表现功率,在数值上是交流电路中电压与电流的乘积。

    生活 2021年10月27日
  • 门里一个吕念什么,门里一个外字 怎么打出来

    技术门里一个吕念什么,门里一个外字 怎么打出来把那个字造出来链接上就可以 造字程序详解
    在文字录入工作中,我们经常会碰到有些方言、土语、人名、地名等生僻字或符号无法录入的问题,给工作带来了很多不便,不过没关系,Wi

    生活 2021年10月22日
  • 如何使用Angular JS + Express JS入门搭建网站

    技术如何使用Angular JS + Express JS入门搭建网站这期内容当中小编将会给大家带来有关如何使用Angular JS + Express JS入门搭建网站,文章内容丰富且以专业的角度为大家分析和叙述,阅读

    攻略 2021年10月29日
  • 什是多音字吗,帮忙找多音字……要多.

    技术什是多音字吗,帮忙找多音字要多.补bu(修补) piao(姓) 乐le(快乐) yue(喜悦) 行hang(行情) xing(行走) 系 xi(关系) ji(系鞋带) 应ying(四声)应用 ying(应该) 长 z

    生活 2021年10月22日
  • 怎么实现提示用户退出程序

    技术怎么实现提示用户退出程序这篇文章主要讲解了“怎么实现提示用户退出程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么实现提示用户退出程序”吧!青铜级别# 青铜 im

    攻略 2021年10月22日
  • 治疗咳嗽化痰偏方,有什么治咳嗽的小妙招吗

    技术治疗咳嗽化痰偏方,有什么治咳嗽的小妙招吗咳嗽可由多种原因所致,是呼吸系统疾病最常见的症状之一,应根据咳嗽的分类和性质选择适合自己病情需要的药物治疗,适合自己的才是最好的治疗咳嗽化痰偏方。咳嗽按持续时间分为急性咳嗽、亚

    生活 2021年11月1日