调试Java程序前需安装JDK(Java Development Kit),Debian系统推荐使用OpenJDK(开源实现)。通过以下命令安装OpenJDK 11(或其他版本):
sudo apt update
sudo apt install openjdk-11-jdk
安装完成后,验证安装是否成功:
java -version # 查看Java运行时版本
javac -version # 查看Java编译器版本
若输出类似openjdk version "11.0.xx"
的信息,则说明安装成功。
jdb
调试jdb
是JDK自带的命令行调试工具,适合习惯终端操作的用户。
-g
选项(包含调试符号,如行号、局部变量信息):javac -g HelloWorld.java
jdb
调试会话jdb HelloWorld
HelloWorld.java
的第5行):stop at HelloWorld:5
run
step
:进入当前行调用的方法内部;next
:执行当前行,不进入方法内部(跳过方法调用)。count
变量):print count
continue
quit
退出jdb
。IDE(如IntelliJ IDEA、Eclipse)提供图形化界面,大幅简化调试流程。以IntelliJ IDEA为例:
File -> Open
选择项目目录)。Run -> Edit Configurations
;+
号,选择Remote
;localhost
)和端口号(如5005
);OK
保存配置。Frames
窗口),或使用调试按钮(Step Over
、Step Into
)控制执行流程。若Java程序运行在远程服务器(如Debian云服务器),需通过JDWP协议启用远程调试,配合本地IDE进行调试。
demo.jar
为例):java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar demo.jar
参数说明:
transport=dt_socket
:使用Socket传输;server=y
:程序作为调试服务器;suspend=n
:程序启动时不暂停(若设为y
,则需等待调试器连接后才启动);address=5005
:调试端口(可自定义,需确保服务器防火墙开放该端口)。localhost:5005
),点击Debug
即可连接。count > 10
),仅当条件满足时程序暂停,适合调试循环或复杂分支逻辑。Threads
窗口查看所有线程状态,右键点击线程可设置线程断点(仅暂停指定线程)。System.out.println
或日志框架(如Log4j、SLF4J)输出关键信息,辅助定位问题(尤其适合无法复现的问题)。以上方法覆盖了Debian系统下调试Java程序的常见场景,可根据实际需求选择命令行工具(jdb
)或图形化IDE,远程调试则适合分布式系统或服务器环境。