手把手教你学会 Intellij IDEA 高级调试技巧之远程调试
ahcoder 2025-05-22 08:58 5 浏览
把这些弱点和不成功的地方展示出来
是一种真正的自由
调试也许是程序员工作中最重要的能力,因为程序的逻辑随着时间会越来越复杂,很多时候面对奇奇怪怪的问题我们都会选择调试来深入的看程序的执行流程都是怎样。
在企业开发中,往往都会有开发环境,测试环境,正式环境。有些问题在开发环境都是好好的,一到其他环境就掉链子。
这类情况其实还是挺常见的,特别是经过本地的调试也不能发现问题的所在的时候,就让人很烦躁了。
此时很多同学都会想如果可以调试测试环境的代码就好了,就可以很快发现问题。
那么今天就来介绍 IDEA 强大的远程调试,让你像调试本地代码一样去调试其他服务器上的代码。
首先我们要有一个 Java 的项目来用于调试,比如一个简单的 Spring Boot 项目。
然后把项目打成一个 jar 包,可以通过直接运行 Spring Boot 项目,或者执行 maven 的打包命令
mvn clean package
这个时候你就可以把这个 jar 包上传到你的 linux 服务器上了。
接下来就去到 IDEA 里面,设置远程调试语言的启动项的命令。
首先点击 Run 按钮左边的下拉框,选择Edit Configurations
这里也可以使用快捷键 alt shift f10,然后按 0
接着就回出现如下的对话框
点击左上角的号,选择Remote JVM Debug。
接着就是输入一些配置信息
其中 Name 是给这次远程调试取个名字
Host 是项目所在的远程服务器的 ip
Port 是这次远程调试监听的端口
下面有个以-agentlib 开头的命令行需要复制出来。
接着就去远程服务器上运行项目
命令如下
java-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar demo-0.0.1-SNAPSHOT.jar
这里就是比平时运行 jar 包多带了一个命令行参数而已。
需要注意的是,-agentlib和-jar顺序不要搞反了,否则无法启动监听。
最后就可以在本地的 IDEA 里面打断点,并且点击 Debug 按钮开始调试。
这个时候如果看到终端输出如下信息表示就可以远程调试了。如果连不上,需要看看你的服务器防火墙是不是关闭了。
这个时候可以使用浏览器或者 postman 工具向服务器发起一个请求,看看请求有没有到断点上来。
需要注意的是,远程调试会阻塞其他用户相同的请求,所以一般在测试环境使用远程调试。
如果你现在只有一个 Windows 电脑,没有一个 linux 服务器,能学习远程调试吗?答案是可以的,只需要把 host 改成 localhost,然后根据上述的步骤操作也能享受到远程调试的魅力。
调试好了之后,也要记得及时关闭远程调试,关闭方法如下
选择当前的远程调试会话,点击远程调试名称右边的×
会弹出如下的对话框
点击 Disconnect 断开连接。
最后
远程调试给我们提供了一种新的调试方案,可以帮助我们解决一些本地调试无法发现的问题。
对于个人来说,遇到服务器 bug, 首先会去查看相关的日志,在本地模拟复现服务器上的 bug,如果不行,再使用 arthas 工具,最后才会使用远程调试。
相关推荐
- 当 Linux 根分区 (/) 已满时如何释放空间?
-
根分区(/)是Linux文件系统的核心,包含操作系统核心文件、配置文件、日志文件、缓存和用户数据等。当根分区满载时,系统可能出现无法写入新文件、应用程序崩溃甚至无法启动的情况。常见原因包括:「日志文件...
- linux系统监控工具小神器:btop(linux网络监控工具)
-
top是大家常用的实时系统监控工具,今天给大家介绍一款非常酷炫的实时系统监控工具btop,用了之后你一定会爱上它!btop是一个高级的实时系统监控工具,它是传统top命令的现代替代品,提供了丰富...
- 又一全新恶意软件曝光!专门针对Windows、Linux 和 macOS 用户
-
近日,网络安全研究人员发现了一个利用“CheanaStealer”恶意软件的复杂网络钓鱼活动,该恶意软件是通过一个VPN钓鱼网站传播的。这次攻击的主要目标是各种操作系统的用户,包括Wind...
- Java程序员必备的Linux命令全解析
-
Java程序员必备的Linux命令全解析作为一名Java开发者,除了精通Java语法和框架外,掌握一些基础的Linux命令也是十分必要的。这不仅能提高你的工作效率,还能让你更好地管理和部署Java应用...
- Linux基础知识之shell实现用户管理功能
-
[root@k8s-mastershell]#moreusermanager.sh#!/bin/bashRED='\033[0;31m'GREEN='\033[...
- 惊艳!Linux 中迷人的 Shell 脚本工具
-
如果您是Linux操作系统爱好者或正在将自己定义为一个爱好者,那么与shell脚本交叉的路径是完全不可避免的。根据定义,shell脚本是设计用于在Unix/Linuxshell环境中执...
- 【shell编程】你的第一个sh脚本(shell脚本编程教程)
-
vimhello.sh#!/bin/bash#注释echo-e"HelloWorld!\a\n"exit0第一行#!/bin/bash,作用是宣告这个文件内的语...
- linux之bash、sh和dash(linux里bash命令)
-
linux系统里有sh、bash、dash等多种shell的解释器命令,其中sh是shll的缩写,是linux系统默认的shell解释器,bash则是sh命令的增强版,dash则是从netbsd派生而...
- 14、linux命令-du(linux命令-s)
-
14、linux命令-du常用命令du-sh/*#显示指定目录下每个文件或目录的容量大小,并且以易读方式显示(常用)。du命令概述du命令作用是估计文件系统的磁盘已使用量,常用于查看文件或目录...
- Manjaro Linux:属于我的Linux体验
-
从Debiantesting切换回Manjarotesting前端使用好久的Manjarotesting切换到了Debiantesting,就是因为有一些包只有deb版本,适配了Debia...
- 小狼毫 0.17.0 更新,解锁输入新姿势!
-
0.17.0版本(2025年5月17日发布)这次更新可不少东西呢!先把librime升级到1.13.1版本啦,也不知道这升级之后会带来啥新变化,用用就知道咯。之前老是出问题的托...
- Kali Linux 初始配置(kali linux2019默认用户名和密码)
-
1.更新源&升级系统sudoaptupdate&&sudoaptupgrade-ysudoaptdist-upgrade-y作用:确保所有工具和系统补丁为最新,避免...
- 怎样利用锤子手机和讯飞手机输入法,让电脑动起来
-
在大家看来,老罗的发布会捧红了科大讯飞。小编当时就被老罗洗脑了,立刻下载了讯飞输入法体验了一番。后来小编突发奇想,我经常使用向日葵远程控制电脑,如果远程控制电脑时使用讯飞,能否在电脑上完成语音输入?或...
- 装好KALI之后,急需做的两个事情,更新源和添加输入法
-
每次当我们装完系统之后,突然发现很茫然,为什么要装这个系统?也就是说我们压根儿就不知道装这个系统是为了做什么。而且刚装好的系统体验起来,好像也并没有网上说的那么好。之前想做的种种操作现在也就不了了之了...
- Linux 依赖问题“硬核”解决方案 | 技术
-
编者按:本文介绍了一些另类的暴力破解RPM和DEB软件包依赖关系的方法,对陷入依赖陷阱而不可自拔的人来说,有时候这也是一种绝地求生之路。至于说这样做是否合适,那就是一件见仁见智的事情了,不过这...
- 一周热门
- 最近发表
- 标签列表
-
- linux 远程 (37)
- u盘 linux (32)
- linux 登录 (34)
- linux 路径 (33)
- linux 文件命令 (35)
- linux 是什么 (35)
- linux 界面 (34)
- 查看文件 linux (35)
- linux 语言 (33)
- linux代码 (32)
- linux 查看命令 (33)
- 关闭linux (34)
- root linux (33)
- 删除文件 linux (35)
- linux 主机 (34)
- linux与 (33)
- linux 函数 (35)
- linux .ssh (35)
- cpu linux (35)
- 查看linux 系统 (32)
- linux 防火墙 (33)
- linux 手机 (32)
- linux 镜像 (34)
- linux ip地址 (34)
- linux 用户查看 (33)