在 Ubuntu 上进行 Java 调试,常见方式有三种:命令行调试(jdb)、IDE 调试(推荐)、远程调试(生产环境常用)。下面按使用场景详细说明。
| 功能 | 快捷键 |
|---|---|
| Step Over | F8 |
| Step Into | F7 |
| Resume | F9 |
| 查看变量 | 鼠标悬停 |
| 计算表达式 | Alt + F8 |
✅ 适合:本地开发调试
javac -g Hello.java
jdb Hello
stop at Hello:10 # 在第10行断点
run # 运行
step # 单步
next # 下一行
print 变量名 # 查看变量
locals # 查看局部变量
cont # 继续执行
quit # 退出
⚠️ jdb 非常原始,一般不推荐日常使用。
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar app.jar
参数说明:
address=5005 → 调试端口suspend=n → 不等待调试器直接启动suspend=y → 启动后暂停,等调试器连接(常用排查启动问题)+ → Remote JVM Debug✅ 可断点调试服务器上的 Java 程序
如果是线上环境,通常不常驻断点:
private static final org.slf4j.Logger log =
org.slf4j.LoggerFactory.getLogger(ClassName.class);
log.debug("value = {}", value);
开启 debug 日志:
logging.level.com.xxx=DEBUG
java -cp . Hello
netstat -tunlp | grep 5005
sudo ufw allow 5005
| 场景 | 推荐方式 |
|---|---|
| 本地开发 | IntelliJ IDEA |
| 服务器无 GUI | 远程调试 |
| 快速看问题 | 日志 |
| 学习 JVM | jdb |
如果你愿意,可以告诉我:
我可以给你 针对性一步步操作示例。