Java在Debian上的远程调试操作步骤
1. 准备工作:安装JDK
确保Debian系统已安装JDK(建议使用OpenJDK 11及以上版本),可通过以下命令安装并验证:
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)。
3. 配置IDE(以IntelliJ IDEA为例)
通过IDE连接远程调试服务,步骤如下:
- 打开IntelliJ IDEA,点击顶部菜单栏 Run → Edit Configurations;
- 点击左上角 + 号,选择 Remote JVM Debug;
- 在右侧配置界面填写:
- Name:自定义配置名称(如“Debian Remote Debug”);
- Host:远程服务器的IP地址(如
192.168.1.100); - Port:与JVM参数中
address字段一致的端口号(如5005);
- 点击 Apply → OK 保存配置。
4. 启动远程调试会话
- 确保远程服务器上的Java应用已启动(且监听指定端口);
- 在IntelliJ IDEA中选择刚配置的远程调试配置,点击工具栏的 Debug 按钮(绿色虫子图标);
- 若连接成功,IDE会显示“Connected to the target VM”日志;
- 在本地代码中设置断点(需确保本地代码与远程服务器上的代码版本一致),通过浏览器或命令行访问远程应用,触发断点后,IDE会暂停执行,可查看变量值、调用栈等信息。
5. 注意事项
- 代码一致性:本地代码与远程服务器上的代码必须完全一致(包括依赖库版本),否则断点可能无法命中;
- 防火墙设置:确保远程服务器的防火墙允许调试端口的入站连接(如5005端口),可通过以下命令开放端口:
sudo ufw allow 5005/tcp - 网络稳定性:远程调试依赖网络连接,建议在局域网内操作,避免因网络延迟影响调试效率;
- 生产环境谨慎使用:远程调试会暴露应用内部状态,生产环境建议仅在必要时使用,使用后及时关闭调试端口。
可选:使用命令行工具(JDB)调试
若不想使用IDE,可通过Java自带的命令行调试工具jdb连接远程调试服务:
- 启动远程调试服务(同步骤2);
- 在本地终端执行以下命令连接远程服务:
jdb -connect com.sun.jdi.SocketAttach:hostname=192.168.1.100,port=5005 - 连接成功后,使用
jdb命令(如stop at MyClass:10设置断点、run启动调试、next单步执行)进行调试。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1426076.html