游乐游手机版
首页/编程语言/文章详情

Debian系统Java远程调试操作指南

时间:2026-08-02 06:12
基于Debian系统,远程调试Java应用需先安装OpenJDK11或更高版本,启动时添加JVM参数开启远程调试服务并指定端口,在IDE中配置远程调试连接,确保本地与远程代码版本一致,注意防火墙放行调试端口及网络稳定性,生产环境谨慎使用。

在Java开发中,远程调试是一项非常实用的技能——尤其是当你在远程服务器或生产环境里遇到问题,需要像在本地一样逐行排查代码时,它几乎就是救命稻草。下面就以Debian系统为例,把整个流程拆解开来,一步步说清楚。需要注意的是,所有操作步骤都基于OpenJDK 11及以上版本,且建议在局域网内进行,避免网络延迟影响调试体验。

Java在Debian上的远程调试操作步骤

1. 准备工作:安装JDK

开始之前,请确认你的Debian环境已经安装了JDK。建议使用OpenJDK 11或更高版本,安装和验证的命令非常简单:

Java在Debian上的远程调试如何操作

sudo apt update
sudo apt install openjdk-11-jdk
java -version  # 验证安装,需要显示JDK版本信息

这一步没什么难度,但一定要确保版本信息正确,否则后续调试时可能因为版本不匹配出现奇怪的问题。

2. 配置Java应用支持远程调试

启动Java应用时,需要添加一组JVM参数来开启远程调试。以Spring Boot的jar包为例,典型的启动命令如下:

nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -jar your-application.jar &

这里有几个关键参数,简单解释一下:

  • transport=dt_socket:使用Socket协议进行调试通信,这是最常用的方式;
  • server=y:让应用作为调试服务器,等待IDE连接;
  • suspend=n:应用启动时不暂停。如果你希望应用启动后先等待调试器连接再继续执行,可以改成y
  • address=*:5005:监听所有网络接口的5005端口。星号表示允许远程连接,也可以换成具体的IP地址。

注意,端口号可以自定义,但必须与后续IDE中配置的端口一致。

3. 配置IDE(以IntelliJ IDEA为例)

在IntelliJ IDEA中配置远程调试连接,步骤如下:

  1. 点击顶部菜单栏 Run → Edit Configurations
  2. 点击左上角 + 号,选择 Remote JVM Debug
  3. 在右侧配置界面填写:
    • Name:自定义一个名字,比如“Debian Remote Debug”;
    • Host:远程服务器的IP地址,例如192.168.1.100
    • Port:与JVM参数中address字段一致的端口号,比如5005
  4. 点击 Apply → OK 保存配置。

这一步非常简单,但注意填写IP和端口时不要出错,否则连接会失败。

4. 启动远程调试会话

  1. 先确认远程服务器上的Java应用已经启动,并且正在监听你指定的调试端口(可以通过netstat -tlnp | grep 5005检查);
  2. 在IntelliJ IDEA中选择刚才配置的远程调试配置,点击工具栏上的 Debug 按钮(绿色虫子图标);
  3. 如果连接成功,IDE会显示“Connected to the target VM”的日志提示;
  4. 在本地代码中设置断点——注意,本地代码必须与远程服务器上的代码版本完全一致,否则断点可能无法命中。之后通过浏览器或命令行访问远程应用,触发断点,IDE就会暂停执行,你可以查看变量值、调用栈等信息。

这一步的关键在于代码一致性,很多新手在这里踩坑,一定要确保本地代码和远程代码(包括依赖库版本)完全对应。

5. 注意事项

  • 代码一致性:本地与远程的代码版本必须一模一样,包括所有依赖库。否则断点可能对不上行号,甚至调试行为异常;
  • 防火墙设置:远程服务器的防火墙需要允许调试端口的入站连接。例如,使用UFW开放5005端口:
    sudo ufw allow 5005/tcp
  • 网络稳定性:远程调试依赖网络连接,延迟过高会导致IDE响应缓慢甚至断连。建议在局域网内操作,避免跨公网;
  • 生产环境谨慎使用:远程调试会暴露应用内部状态,存在安全风险。生产环境仅在必要时使用,用完后立即关闭调试端口(停止应用或调整防火墙规则)。

可选:使用命令行工具(JDB)调试

如果你不想依赖IDE,也可以使用Java自带的命令行调试工具jdb。操作步骤:

  1. 按步骤2启动远程调试服务;
  2. 在本地终端执行以下命令连接远程服务:
    jdb -connect com.sun.jdi.SocketAttach:hostname=192.168.1.100,port=5005
  3. 连接成功后,使用jdb命令进行调试,例如:stop at MyClass:10设置断点,run启动调试,next单步执行等。

JDB虽然不如IDE直观,但在没有图形界面的场景下非常实用,值得掌握。

来源:https://www.yisu.com/ask/58535693.html
上一篇Win10系统VSCode配置Node环境详细步骤 下一篇Ubuntu PyTorch与其他框架集成方法详解
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
CentOS上Golang单元测试方法
编程语言 · 2026-08-02

CentOS上Golang单元测试方法

在CentOS上运行Golang单元测试:先安装Go环境,创建项目目录并编写业务代码(如加法函数),再添加以_test go结尾的测试文件,最后使用gotest命令自动执行测试并输出通过或失败详情。

CentOS下Golang并发编程实战指南
编程语言 · 2026-08-02

CentOS下Golang并发编程实战指南

在CentOS环境下,Golang并发编程的核心是goroutines和channels。goroutines是轻量级线程,创建成本极低,通过go关键字即可启动,支持大量并发任务,并由Go运行时调度。channels用于goroutines间通信,保障数据同步,支持缓冲与无缓冲。两者结合能高效实现并发,提升程序性能。

CentOS上Rust项目备份与恢复完整操作步骤详解方法
编程语言 · 2026-08-02

CentOS上Rust项目备份与恢复完整操作步骤详解方法

在CentOS上备份Rust项目需打包代码目录、单独备份Cargo toml与Cargo lock依赖文件、用mysqldump或pg_dump导出数据库,并分离 env等配置文件。恢复时解压代码、复制依赖文件运行cargobuild、导入数据库SQL文件、还原配置文件并检查权限。定期备份并测试恢复流程可确保可靠性。

CentOS下构建Rust项目的完整教程
编程语言 · 2026-08-02

CentOS下构建Rust项目的完整教程

在CentOS上搭建Rust环境:使用curl安装Rust工具链,通过cargonew创建项目、cargobuild构建、cargorun运行,支持添加依赖、特性配置、单元测试及文档生成,步骤简洁高效,适合快速开发与部署。

HDFS读写性能优化方法与技巧
编程语言 · 2026-08-02

HDFS读写性能优化方法与技巧

HDFS读写性能优化需从数据本地化、块大小、副本因子、纠删码、NameNode与DataNode配置、数据压缩、缓存、监控调优、分片并行、避免小文件、超时设置、SSD存储及定期维护等方面综合权衡,结合业务场景反复迭代。