Ubuntu Java代码调试技巧有哪些
导读:Ubuntu Java代码调试技巧 一、基础调试准备 在Ubuntu上调试Java代码前,需完成两项基础配置: 安装JDK:通过sudo apt update && sudo apt install openjdk-17-...
Ubuntu Java代码调试技巧
一、基础调试准备
在Ubuntu上调试Java代码前,需完成两项基础配置:
- 安装JDK:通过
sudo apt update & & sudo apt install openjdk-17-jdk
(以OpenJDK 17为例)安装JDK,安装后用java -version
和javac -version
验证是否成功。 - 启用调试信息:编译Java代码时添加
-g
参数(如javac -g YourClassName.java
),确保生成的.class
文件包含变量名、行号等调试信息,否则调试工具无法准确定位代码位置。
二、常用调试工具
1. 图形化IDE调试(推荐新手)
- IntelliJ IDEA:
- 启动调试:右键点击Java文件中的
main
方法,选择Debug '类名.main()'
,或点击工具栏绿色虫子图标。 - 断点设置:点击行号左侧空白处添加普通断点;右键断点可设置条件断点(如
i == 5
),仅在满足条件时暂停。 - 调试操作:使用调试工具栏的
Step Into
(进入方法内部)、Step Over
(跳过方法)、Step Return
(跳出当前方法)控制执行流程;通过Variables
面板查看变量值,或选中变量按Ctrl+Shift+D
计算表达式。
- 启动调试:右键点击Java文件中的
- Eclipse:
- 启动调试:右键项目选择
Debug As
->Java Application
。 - 异常断点:点击
Breakpoints
视图+
号,选择Java Exception Breakpoint
,输入异常类型(如NullPointerException
),程序遇到该异常时会自动暂停。 - 监视点:右键变量选择
Toggle Watchpoint
,当变量被访问或修改时暂停程序,适合监控关键变量变化。
- 启动调试:右键项目选择
2. 命令行调试(适合习惯终端的用户)
- jdb(JDK自带):
- 启动调试:
jdb YourClassName
(需提前编译并包含调试信息)。 - 设置断点:
stop at YourClassName:行号
(如stop at YourClassName:10
)。 - 控制执行:
run
启动程序,step
单步进入方法,next
单步跳过方法,continue
继续执行至下一个断点。 - 查看信息:
print 变量名
(如print sum
)查看变量值,locals
查看当前帧所有局部变量,where
查看当前线程堆栈跟踪。
- 启动调试:
- 辅助工具:
jps
:查看当前运行的Java进程(如jps -l
),获取进程ID以便后续调试。jstack
:生成线程快照(如jstack 进程ID
),分析线程死锁、阻塞等问题。
三、高级调试技巧
- 远程调试:
适用于调试运行在远程服务器(如Ubuntu云主机)上的Java程序。- 服务端配置:启动Java程序时添加JVM参数
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
(5005
为监听端口,可自定义)。 - 客户端配置:在IntelliJ IDEA中点击
Run
->Edit Configurations
,添加Remote
配置,填写服务端Host
(如192.168.1.100
)和Port
(5005
),点击OK
后启动调试即可连接远程程序。
- 服务端配置:启动Java程序时添加JVM参数
- 条件断点:
在断点处右键选择More
->Condition
,输入布尔表达式(如list.size() > 10
),仅当条件满足时暂停,减少不必要的调试步骤,提升效率。 - 监视点:
选中类中的变量,右键选择Toggle Watchpoint
,当变量被读取或修改时程序暂停,适合监控关键数据的变化(如全局变量、共享资源)。 - 评估/修改变量:
调试时选中变量,按Ctrl+Shift+D
(IntelliJ IDEA)或Ctrl+Shift+I
(Eclipse)快速查看变量值;在调试控制台中直接输入变量名 = 新值
(如sum = 100
),修改变量值以测试不同场景下的程序行为。
四、日志与工具辅助
- 日志分析:
使用Log4j、SLF4j等日志框架在代码中添加日志语句(如logger.debug("Current value of i: { } ", i)
),运行程序后将日志输出到文件(如log4j.appender.FILE.File=/var/log/myapp.log
),通过查看日志定位问题(如异常堆栈、变量状态)。 - VisualVM监控:
通过sudo apt install visualvm
安装VisualVM,连接到目标Java进程(localhost:1099
或远程主机的JMX端口),监控CPU使用率、内存占用、线程状态等指标,辅助分析性能瓶颈(如内存泄漏、线程阻塞)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Java代码调试技巧有哪些
本文地址: https://pptw.com/jishu/727748.html