Ubuntu下Java调试技巧汇总
在开始调试前,需确保Ubuntu系统已正确安装JDK并配置环境变量。通过sudo apt update && sudo apt install default-jdk安装默认JDK,使用java -version验证安装;编辑~/.bashrc文件添加export JAVA_HOME=/usr/lib/jvm/java-版本号-amd64(替换为实际版本)和export PATH=$JAVA_HOME/bin:$PATH,运行source ~/.bashrc使配置生效。编译Java代码时,建议添加-g参数(如javac -g HelloWorld.java)以生成包含调试信息的class文件,便于后续查看变量和行号。
jdb是JDK自带的命令行调试工具,适合习惯终端操作的用户。基本流程如下:
jdb HelloWorld(HelloWorld为类名)进入调试模式;stop in HelloWorld.main(在main方法首行设置断点)或stop at HelloWorld:7(在指定行号设置断点);run运行程序,程序会在断点处暂停;step(进入方法内部)或next(跳过方法调用)逐行执行代码;print a(查看变量a的值)或locals(查看当前帧所有局部变量);cont继续运行至下一个断点或程序结束。IntelliJ IDEA、Eclipse等IDE提供直观的图形化调试界面,大幅提升效率:
main方法的文件,选择“Debug File”(IntelliJ IDEA)或“Debug As → Java Application”(Eclipse);a + b)计算结果;a的值从5改为10),观察程序行为变化。若需调试运行在远程Ubuntu服务器上的Java程序,需开启远程调试功能:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005(端口可自定义,如5005);i == 5),仅当条件满足时暂停程序,减少不必要的单步执行;NullPointerException)时自动暂停,快速定位异常发生位置;System.out.println或日志框架(如Log4j)添加详细日志,辅助排查难以复现的问题;使用top -p $(pgrep -f 程序名)监控程序CPU和内存使用情况,或通过VisualVM、JProfiler等工具分析性能瓶颈(如内存泄漏、CPU占用过高)。