温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

命令行界面java如何调试

发布时间:2026-10-25 18:45:27 来源:亿速云 阅读:89 作者:小樊 栏目:编程语言

在命令行(无 IDE)下调试 Java 程序,常用方式有以下几种,从最基础到最专业依次说明:


一、最基础:打印调试(printf 大法)

适合简单问题。

System.out.println("x = " + x);

或使用日志框架(推荐):

import java.util.logging.*;

Logger logger = Logger.getLogger("MyApp");
logger.info("x = " + x);

✅ 优点:简单
❌ 缺点:不能动态控制、效率低


二、使用 jdb(JDK 自带命令行调试器)

JDK 自带,无需额外安装。

1️⃣ 编译(必须带调试信息)

javac -g Hello.java

2️⃣ 启动调试

jdb Hello

3️⃣ 常用 jdb 命令

stop at Hello:10        # 在第10行断点
run                     # 运行程序
step                    # 单步进入
next                    # 单步跳过
cont                    # 继续执行
print x                 # 打印变量
list                    # 查看源码
quit                    # 退出

✅ 优点:官方自带
❌ 缺点:交互不友好,效率低


三、远程调试(最常用方式)

用 IDE(IDEA / Eclipse)连命令行 Java 程序

1️⃣ 启动 Java 程序(开启调试端口)

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 -jar app.jar

参数说明:

  • address=5005:调试端口
  • suspend=y:启动后暂停,等调试器连接
  • suspend=n:直接运行

2️⃣ IDE 中配置 Remote JVM Debug

  • Host: localhost
  • Port: 5005

✅ 优点:体验最好
✅ 适合服务器 / 容器 / 生产环境


四、使用诊断工具(不暂停程序)

适合性能、内存、线程问题。

1️⃣ jstack(线程栈)

jstack <pid>

2️⃣ jmap(内存)

jmap -heap <pid>
jmap -dump:live,format=b,file=heap.hprof <pid>

3️⃣ jstat(GC)

jstat -gcutil <pid> 1000

4️⃣ VisualVM / JConsole

jvisualvm

五、推荐组合(实战)

场景 推荐方式
本地快速看问题 日志
命令行环境 jdb
服务器 / Docker 远程调试
性能 / 死锁 jstack + VisualVM

六、示例:完整远程调试流程

# 编译
javac -g App.java

# 启动
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 App

然后 IDE 连 localhost:5005 即可断点调试。


如果你愿意,可以告诉我:

  • 是 本地命令行 还是 服务器 / Docker
  • 用的是 Java 几
  • 是否是 Spring / 普通 Java 程序

我可以给你更精确的调试方案。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手