基于IDEA Java 项目远程DEBUG调试

简介: 基于IDEA Java 项目远程DEBUG调试

远程调试是指服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道远程服务端的此时的内部状态。

一、 场景

   1. 第三方接口开发的异步回调接口;如:微信支付、支付宝支付等

   2. 依赖特定环境的测试,只能把本地代码放入到该环境中;

二、 常见环境

   1. 在服务器端以Jar启动的应用,如现在非常流行的Spring Boot

      a. 在启动springboot时默认使用java命令来启动。  比如,示例项目启动命令为:java                                      -jar xxx. jar                                                                                          

开启远程调试模式的命令为:                                          

java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 xxxx.jar复制代码

   执行该命令后,在服务器端会开启远程调试端口5005(端口可自定义,但要注意服务器防火墙); 在客户端可以通过 telnet host port命令

检查服务器远程端口是否可以连接。

b. 在开发机器上IDEA工具 配置

   首先 Edit configurations,点击+号,创建一个Remote应用。

18a70c4eb3a84a5f97f1367f84b385f.png

填写name,配置Host地址(远程服务器地址)和端口(选一个未被占用的端口)。

7ddf83fd0684c2304cdc5bd4333845b.png                                                                                                                                                                                                              

 点击Ok按钮,再启动刚才配置的Remote服务; 看控制台输出信息,是否与服务器端建立连接; 建立连接完成,对需要debug的代码打上断点                                                                                                                                                                                        

,剩下的操作步骤就是访问远程服务器对应的业务请求,本地就会同步debug。其余的操作与本地debug相同,此处就不再赘述了。                                                                                                                                                                                        

   2. 以Tomcat启动的Web项目

      a. 在服务器上开启tomcat远程调试命令(已Windows为例):  %TOMCAT_HOME%\bin\catalina.bat     jpda   start;  

   在服务器端口开启远程调试默认端口: 8000;

    如需更改TOMCAT开放默认远程调试端口

    方法1、

WIN系统,在catalina.bat里:

SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005复制代码

Linux系统,在catalina.sh里:

CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005" 复制代码

b. 开发机器IDEA 配置请参考上面 IDEA工具配置

目录
打赏
0
0
0
0
9
分享
相关文章
Servlet开发流程 (里面有Idea项目添加Tomcat依赖详细教程)
本文详细介绍了Servlet的开发流程,包括在IntelliJ IDEA中添加Tomcat依赖的详细教程。通过上述步骤,开发者可以快速搭建并运行一个基本的Servlet应用,理解并掌握Servlet的开发流程对于Java Web开发至关重要。希望本文能够帮助开发者顺利进行Servlet开发,提高工作效率。
183 78
|
1天前
|
JetBrains IntelliJ IDEA 2025.1 发布 - 领先的 Java 和 Kotlin IDE
JetBrains IntelliJ IDEA 2025.1 (macOS, Linux, Windows) - 领先的 Java 和 Kotlin IDE
50 2
|
5月前
|
轻松上手Java字节码编辑:IDEA插件VisualClassBytes全方位解析
本插件VisualClassBytes可修改class字节码,包括class信息、字段信息、内部类,常量池和方法等。
326 6
|
2月前
|
Idea配置项目的热启动
Idea配置项目的热启动
132 5
Idea配置项目的热启动
IDEA+Docker 远程一键部署项目:技术干货分享
【10月更文挑战第4天】在现代软件开发中,快速、可靠、自动化的部署流程是提升开发效率和运维质量的关键。IDEA(IntelliJ IDEA)作为Java开发者首选的IDE,结合Docker这一轻量级容器化技术,能够实现远程一键部署项目,极大地简化了开发到生产的流程。今天,我将和大家分享这一组合在工作学习中的实际应用和技术干货。
581 3
Git使用教程-将idea本地Java等文件配置到gitte上【保姆级教程】
本内容详细介绍了使用Git进行版本控制的全过程,涵盖从本地仓库创建到远程仓库配置,以及最终推送代码至远程仓库的步骤。
97 0
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
183 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
Java|在 IDEA 里自动生成 MyBatis 模板代码
基于 MyBatis 开发的项目,新增数据库表以后,总是需要编写对应的 Entity、Mapper 和 Service 等等 Class 的代码,这些都是重复的工作,我们可以想一些办法来自动生成这些代码。
95 6
|
6月前
|
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
390 1
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)
这篇文章介绍了在IntelliJ IDEA社区版中创建Spring Boot项目的三种方法,特别强调了第三种方法的详细步骤。
5066 0
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等