目录
一、 前提
需要准备JDK1.8环境,安装IDEA(版本不限)
二、 IDEA中如何实现远程Debug模式
(1)、创建demo项目
1.File一>New一>project…
2.Maven Archetype一>填写Name一>选择jdk1.8一>选择Web一>创建
(2)、引入依赖
参数详解:
【-Xdebug】:通知JVM工作在DEBUG模式下。
【-Xrunjdwp】:通知JVM使用(Java debug wire protocol)运行调试环境。
【transport】:指定调试数据的传送方式,dt_socket是指用SOCKET模式,另有dt_shmem指用共享内存方式。据说:dt_shmem只适用于Windows平台。
【address】:调试服务器的端口号,客户端用来连接服务器的端口号(一般工具中默认5005端口,也可以自定义,这个没有关系)。
【server=y/n】:VM 是否需要作为调试服务器执行(选择y)。
【suspend=y/n】:是否在调试客户端建立连接之后启动 VM。
<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.5.RELEASE</version><relativePath/></parent><groupId>com.le</groupId><artifactId>remote-idea</artifactId><packaging>jar</packaging><version>1.0-SNAPSHOT</version><name>remote-idea Maven Webapp</name><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><!--启动类jar包--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies><build><finalName>remote-idea</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n</jvmArguments></configuration></plugin></plugins></build></project>
(3)、创建启动类和创建demo
启动类:
packagecom.le;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;/**
* @author: le
* @date: 2023年05月10日 11:25
* @ClassName: RemoteIdeaApplication
* @Description: TODO
*/@SpringBootApplicationpublicclassRemoteIdeaApplication{publicstaticvoidmain(String[] args){SpringApplication.run(RemoteIdeaApplication.class, args);}}
测试demo:
packagecom.le.controller;importorg.springframework.web.bind.annotation.PostMapping;importorg.springframework.web.bind.annotation.RestController;/**
* @author: le
* @date: 2023年05月10日 11:31
* @ClassName: TestDemoController
* @Description: TODO
*/@RestControllerpublicclassTestDemoController{@PostMapping("/test")publicStringtest(Integer id,String name){System.out.println("id="+ id);System.out.println("name="+ name);if(id >0){return"le "+ name;}else{return"false";}}}
启动,测试一下demo是否正常
(4)、配置idea
找到Remote Jvm Debug
填写名称,输入IP地址,pom里面配置的端口,选择jdk对应版本,选择debug的模块
注意:
选择 jdk9以上,则为
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:1111
打包
把Jar包放入在D盘根目录下面,然后使用CMD命令启动
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar remote-idea.jar
在IDEA中启动,打上断点
使用ApiPost测试
成功
这个时候我们就可以开始Debug了,是不是方便找问题了,使用linux系统也是一样的,只是改变一下启动方式,还要防火墙问题。
二、 IDEA的Debug的优缺点?
优点: 把断点打在本地,直接访问线上程序即可,方便调试。(线上程序出了问题,无法根据log进行排查时)。
缺点: 可能会造成“阻塞”。(同一程序中,本地断点没走完之前,别的接口请求可能会“阻塞”)。
使用这种方式,有利有弊,根据不同场景判断是否使用。
二、 Demo的源代码地址
百度网盘链接:https://pan.baidu.com/s/1i6BxYLtGiRzxLXvlyMxtTw
提取码:pfg2
也可私信我,找我获取源代码
总结
以上就是使用IDEA来实现远程Debug的方法,希望能够帮助到大家,点赞支持一下,谢谢!
版权归原作者 一繁Java 所有, 如有侵权,请联系我们删除。