idea java 远程调试_使用IDEA进行JAVA代码的远程Debug

2023-10-27

在本地开发过程中,对代码进行Debug能逐行对代码逻辑进行调试,方便准备的排查问题。但是当代码发布到线上时,如果运行过程中出现异常,仅仅依靠日志来排查问题的话,会比较耗时,而且经常由于日志不全等原因而不能快速准确定位问题,而通过对JAVA代码进行远程Debug能很好的解决这个问题。

这篇博文主要介绍在IDEA中配置JAVA代码远程Debug,以及需要注意的事项。

我们知道,Java 程序是统一以字节码的形式运行在Java 虚拟机上的,因为都是字节码文件,所以只要本地代码和远程服务器上的类文件相同,两个JVM就可以通过调试协议进行通信。这里需要注意的是,被调试的服务器需要开启调试模式,服务器端的代码和本地代码必须保持一致,否则断点无法进入。

在IDEA中进行JAVA代码的远程Debug,需要做两步准备工作。

一、远程服务器端的JAVA代码开启调试模式。

项目类型:Spring Boot项目

JDK版本:1.8.0_131

项目启动命令:java -jar -Dspring.profiles.active=development -Xms1024m -Xmx1024m -Xmn600m -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=4001 -XX:-OmitStackTraceInFastThrow -XX:+UseG1GC -XX:G1ReservePercent=25 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:log/gc.log smart-building.jar

其中开启远程debug的配置是:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=4001

参数说明:

jdwp:java debug wire protocol

transport=dt_socket:以socket协议进行通信

server=y:开启调试服务端

address=4001:通信端口是4001

二、IDEA中的参数配置

1. 打开远程Debug参数配置窗口

cc59a29b92a458de8ad88c50e03a4675.png

2. 配置Debug参数,

Host表示远程服务端的IP地址。

Port表示跟远程服务端进行Debug通信的端口。

Command Line表示启动参数,注明开启远程Debug。

Use module classpath 表示远程服务对应的本地代码路径。

5dc30d892d234105ec01798bfecd32ac.png

3. 点击Debug图标,开始Debug

4047feb86b29fcf391ee7c945f7a2523.png

当在IDEA控制台输出这行日志,说明本地IDEA已连接上了远程服务的Debug端口,接下来可以跟调试本地代码一样,开始远程代码Debug。

9de55b10eed1063c2f445c21a35100b7.png

三、注意事项

当开启远程Debug后,任何能走到断点的操作都会导致业务阻塞到断点位置,从而影响业务流程的正常执行,所以最好选择没什么用户操作的时候进行远程Debug调试。

远程Debug调试过程中,结束调试不会导致远程业务流程终止,线上业务会继续执行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

idea java 远程调试_使用IDEA进行JAVA代码的远程Debug 的相关文章

  • Elasticsearch6.4专题之杂记:遇到的异常与解决方案2

    11 lucene util BytesRefHash MaxBytesLengthExceededException bytes can be at most 32766 in length got 56965 解决方案 设置keywor
  • python界面怎么改颜色_Python界面怎么换颜色?求解!!!

    打开电脑 找到idle 并打开idle界面 打开之后默认经典的编码界面如下 白色背景 中文字体 字号也比较小 点击如图所示options选项 工具栏第五个按钮选择 这个按钮下方有一个configure idle选项 意思是配置idle 选中
  • SPI协议读写SD卡介绍

    前言 在前面的文章中 我们主要介绍了如何利用SDIO协议对SD卡进行读写操作的流程及注意事项 虽然SDIO协议读写SD卡的效率很高 但是 操作却比较麻烦 另外 还需要使用的芯片具有SDIO外设 这对于不具备SDIO外设的芯片而言 绝对是一个
  • 弱网测试用什么农_弱网测试方法整理

    说明 首先看一下其他文章对弱网测试的描述 弱网测试 属于健壮性测试的内容 为什么要做呢 现在IT行业飞速发展 各种APP都有 尤其是现在的人们更习惯在上下班的路上去关注一些新闻 看看股市 小说 直播 玩游戏等等 那么就会面临一个问题 在地铁
  • leetcode分类刷题:二叉树(一、简单的层序遍历)

    二叉树的深度优先遍历题目是让我有点晕 先把简单的层序遍历总结下吧 配合队列进行的层序遍历在逻辑思维上自然直观 不容易出错 102 二叉树的层序遍历 本题是二叉树的层序遍历模板 每次循环将一层节点出队 再将一层节点入队 也是所有可用层序遍历解
  • 小程序开发调用微信支付以及微信回调地址配置

    首先观看微信提供的文档 https pay weixin qq com wiki doc api wxa wxa api php chapter 7 3 index 1 清楚调用微信支付必须传递的参数 因为微信提供了小程序唤起微信支付的方法
  • emoji数据清洗

    在对微博等文本数据进行处理的时候发现以往的颜文字之外还会抓取到emoji数据 这部分虽然可以匹配到 但是经常挂一漏万 在网上检索到有一个emoji库可以使用 直接pip安装emoji库 import emoji import re def
  • Postman —— 配置环境变量

    PostMan是一套比较方便的接口测试工具 但我们在使用过程中 可能会出现创建了API请求 但API的URL会随着服务器IP地址的变化而改变 这样的情况下 如果每一个API都重新修改URL的话那将是非常的麻烦 所以PostMan中也提供环境
  • 第二届“移动云杯”大赛医疗行业应用子赛道答疑会成功召开

    为帮助参赛团队了解第二届 移动云杯 算力网络应用创新大赛的命题背景 作品立意 提高作品质量 9月13日 我们召开了第二届 移动云杯 大赛答疑会 特别针对医疗行业应用子赛道的赛题作讲解和答疑 赛题背景 随着科技的不断进步 精准医学技术得到了广
  • 使用C++搭配OpenGL写了一个RenderEngine

    最近在学习OpenGL 看书看的再多 也不如自己动手写一个来看看 耗时一个多月 由于才学不久 各位大佬勿喷 用到了glfw Imgui glm这几个库 整合的资源里都带了 相机类 ifndef CAMERA H define CAMERA
  • 鉴源实验室

    作者 李伟 上海控安安全测评部总监 来源 鉴源实验室 社群 添加微信号 TICPShanghai 加入 上海控安51fusa安全社区 引言 上一篇开始我们介绍白盒的代码结构覆盖率测试 已经完成了语句覆盖测试的讲解 本篇我们介绍分支覆盖 01
  • Linux脚本实战之猜数字

    Linux脚本实战之猜数字 一 脚本要求 二 脚本示例一 三 脚本示例二 一 脚本要求 1 系统环境为RHEL8 0 2 脚本生成一个100以内的随机数 提示用户猜数字 3 根据用户的输入 提示猜对了 猜大了或猜小了 直到用户猜对为止 二
  • 使用构建Docker镜像的方式部署Vue+node项目

    目录 一 安装镜像 二 创建Dockerfile文件构建容器 1 添加Dockerfile文件 2 上传文件 3 构建镜像 4 运行容器 三 如何优化 Docker 镜像 准备工作 电脑安装了node js 配置了vue cli 环境 远程
  • windows驱动开发3:第一个驱动及调试

    一 创建项目 新建一个以Kernel Mode Driver Empty KMDF 为模板的驱动项目 项目名称HelloDriver 在项目中新建一个hello cpp文件作为驱动入口文件 写一点简单的代码做测试 hello cpp代码 i
  • python基于图像颜色的火焰识别

    本文基于图像颜色 主要结合RGB和HSI两种判断依据进行火焰识别 判断依据参考了以下文章 实在是非常感谢 OpenCV学习记录之视频中的火焰检测识别 python版基于颜色的火焰识别 判断条件如下 R gt redThre R gt G g
  • 数据竞赛专题

    为了帮助更多竞赛选手入门进阶比赛 通过数据竞赛提升理论实践能力和团队协作能力 DataFountain 和 Datawhale 联合邀请了数据挖掘 CV NLP领域多位竞赛大咖 将从赛题理解 数据探索 数据预处理 特征工程 模型建立与参数调
  • mmcv读取配置文件,在windows上无法创建临时文件解决方法

    报错是写入 盘的Temp没有权限 因此修改到其他目录 在config中修改以下两个函数 def substitute predefined vars filename temp config name file dirname osp di
  • 用工厂模式管理多个solidity智能合约

    我们写了一份小的计算合约作为Hello World 如果我们可以创建一个允许用户创建自己的计数器的合约怎么办 让我们创建我们的合约CounterFactory 它将管理所有其他计数器Counters 它将包含一个映射 将所有者与其计数器合约

随机推荐

  • captcha验证码入门

    kaptcha是一个简单易用的验证码生成工具 而且支持中文 你还可以配置其很多属性 用法 1 首先到http code google com p kaptcha downloads list把压缩文件下下来 然后把里面的jar文件加到自己的
  • 项目一:用OpenCV识别银行卡号

    import cv2 def sort contours cnts method left to right reverse False i 0 if method right to left or method bottom to top
  • 阿里巴巴的数据库连接池 druid 优点

    阿里的 druid 它不仅仅是一个数据库连接池 它还包含一个ProxyDriver 一系列内置的JDBC组件库 一个SQL Parser Druid 相对于其他数据库连接池的优点 1 强大的监控特性 通过Druid提供的监控功能 可以清楚知
  • 凯恩帝数控系统面板介绍_凯恩帝数控车床操作面板按钮详解!

    KND1TB数控系统操作 在 视图 下拉菜单或者浮动菜单中选择 控制面板切换 后 数控系统操作键盘会出现在视窗的右上角 其左侧为数控系统显示屏 如下图所示 用操作键盘结合显示屏可以进行数控系统操作 KND1TB 输入面板 按键介绍 数字键
  • 黑苹果系统--Parallels Desktop虚拟机使用

    1 挂载外部磁盘到windows虚拟机 1 通过USB将外部磁盘连接至Mac 2 在虚拟机配置窗口中 选择 Hardware gt Add gt Hard Disk 3 在 Type 菜单中选择 Physical Disk 并在 Locat
  • Linux EOIP — 二层协议

    一 协议介绍 EOIP是一个 MikroTik的 Linux使用 TAP的 EoIP EoIPv6隧道的实现 EoIP Ethernet over IP 和 EoIPv6 Ethernet over IPv6 是 MikroTik Rout
  • MATLAB---同态滤波

    同态滤波 clc clear close all 清理命令区 清理工作区 关闭显示图形 warning off 消除警告 feature jit off 加速代码运行 tic filename pathname uigetfile bmp
  • 如何确定自己的科研课题?

    许多研究生刚入学的时候对科研都是一头雾水 不知道文献如何检索 不知道科研该如何发展 总有一段很长的时间在惆怅着我究竟该做些什么 而在写科研论文 确定科研选题就是第一步 那么 到底如何才能确定自己的科研课题呢 本文主要为大家分享以下三点 选题
  • 手把手_下载与安装Ubuntu_18.04_Linux系统

    1 下载Ubuntu镜像文件 1 找到官网 Ubuntu官网 注 不想了解官网的 请直接跳到清华镜像网 2 找到下载入口 如果您要下载最新版本的系统 就直接点击download 1 但是本文以18 04版本为例 故此 点击2处 3 找到国内
  • Python(7)

    Python 7 目录 Python 7 函数 全局变量与局部变量 文件 错误与异常 finally 函数 python的函数使用def定义 def add a b return a b def multiply a b return a
  • ESP8266连接 TCP

    AT GMR查看固件版本 v1 0以上固件命令如下 恢复到初始状态 AT RESTORE 设置WiFi应用模式为Station和Server共存模式 AT CWMODE 3 连接路由器 SSID为路由器用户名 Password为密码 AT
  • cocosCreator 物理关节组件

    cocosCreator 物理关节组件 重点 距离关节 旋转关节 绳子关节 轮子关节 焊接关节 棱柱关节 马达关节 重点 开启物理系统 物理系统默认是关闭的 如果需要使用物理系统 那么首先需要做的事情就是开启物理系统 否则你在编辑器里做的所
  • 如何在WPS、Word里插入高亮代码块

    需要使用Notepad step1 我们首先需要在Notepad 里安装好NppExport插件 步骤如下 第1步 打开 插件管理 第2步 搜索并安装 NppExport 插件 安装后 在已安装界面如下图所示 step2 然后将代码复制在N
  • ws协议与http协议的异同_websocket和http的区别

    websocket和http的区别 1 WebSocket是双向通信协议 模拟Socket协议 可以双向发送或接受信息 而HTTP是单向的 2 WebSocket是需要浏览器和服务器握手进行建立连接的 而http是浏览器发起向服务器的连接
  • 企业运维经典面试题汇总(2)

    1 写一个脚本查找最后创建时间是三天前 后缀是 log的文件并删除 find ctime 3 name log rm rf 2 统计ip访问情况 要求分析nginx访问日志 找出访问页面数量在前十位的ip cat access log aw
  • IDEA-Docker配置CA证书和远程访问

    前言 为了优化idea docker部署 防止自己服务器端口2375被黑 这里简单介绍一下idea docker的ca证书配置 1 新建一个脚本docker ca sh 将下面的脚本复制进去 注意修改一下docker主机ip 创建 Dock
  • spring boot org.springframework.context.annotation.ConflictingBeanDefinitionException

    org springframework context annotation ConflictingBeanDefinitionException 分析接解决方法 错误信息 分析接解决方法 annotation ConflictingBea
  • [从零开始学DeepFaceLab-10]: 使用-命令行八大操作步骤-第6步:模型的选择与训练 - 模型训练

    目录 总体流程 步骤6 模型的选择与训练 模型训练命令 6 1 命令 6 train Quick96 bat 适用CPU only情形以及快速学习 必需之一
  • redis mysql 案例_redis 使用案例

    1 使用redis消息列队发布信息 在一些用户创造用户的应用中 如SNS 微博 可能出现1秒有上千万个用户同时发布消息的情况 此时如果使用mysql可能出现 too many connections 错误 当然 把mysql的max con
  • idea java 远程调试_使用IDEA进行JAVA代码的远程Debug

    在本地开发过程中 对代码进行Debug能逐行对代码逻辑进行调试 方便准备的排查问题 但是当代码发布到线上时 如果运行过程中出现异常 仅仅依靠日志来排查问题的话 会比较耗时 而且经常由于日志不全等原因而不能快速准确定位问题 而通过对JAVA代