阅读量:2
在Debian上调试Java程序的常用方法
1. 准备工作:安装JDK
调试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"的信息,则说明安装成功。
2. 使用JDK自带命令行工具jdb调试
jdb是JDK自带的命令行调试工具,适合习惯终端操作的用户。
- 步骤1:编译时生成调试信息
编译Java程序时,需添加-g选项(包含调试符号,如行号、局部变量信息):javac -g HelloWorld.java - 步骤2:启动
jdb调试会话
在终端输入以下命令,启动调试器并加载编译后的类:jdb HelloWorld - 步骤3:常用调试命令
- 设置断点:在指定类或行的位置暂停程序执行(如
HelloWorld.java的第5行):stop at HelloWorld:5 - 启动程序:运行程序,遇到断点会暂停:
run - 单步执行:
step:进入当前行调用的方法内部;next:执行当前行,不进入方法内部(跳过方法调用)。
- 查看变量值:打印指定变量的当前值(如
count变量):print count - 继续执行:运行到下一个断点或程序结束:
continue - 退出调试:输入
quit退出jdb。
- 设置断点:在指定类或行的位置暂停程序执行(如
3. 使用集成开发环境(IDE)调试
IDE(如IntelliJ IDEA、Eclipse)提供图形化界面,大幅简化调试流程。以IntelliJ IDEA为例:
- 步骤1:导入项目
将Java项目导入IntelliJ IDEA(通过File -> Open选择项目目录)。 - 步骤2:配置远程调试(可选)
若需调试远程服务器上的Java程序(如Spring Boot应用),需先在IDE中添加远程调试配置:- 点击顶部菜单
Run -> Edit Configurations; - 点击
+号,选择Remote; - 输入远程服务器的IP地址(如
localhost)和端口号(如5005); - 点击
OK保存配置。
- 点击顶部菜单
- 步骤3:本地调试
- 在代码行号左侧点击,设置断点(红色圆点);
- 点击工具栏的绿色虫子图标(Debug模式)启动调试;
- 程序会在断点处暂停,通过调试窗口查看变量值、调用堆栈(
Frames窗口),或使用调试按钮(Step Over、Step Into)控制执行流程。
4. 启用远程调试
若Java程序运行在远程服务器(如Debian云服务器),需通过JDWP协议启用远程调试,配合本地IDE进行调试。
- 步骤1:启动远程Java程序
在服务器上启动Java程序时,添加以下JVM参数(以demo.jar为例):参数说明:java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar demo.jartransport=dt_socket:使用Socket传输;server=y:程序作为调试服务器;suspend=n:程序启动时不暂停(若设为y,则需等待调试器连接后才启动);address=5005:调试端口(可自定义,需确保服务器防火墙开放该端口)。
- 步骤2:本地IDE连接远程调试
在IntelliJ IDEA中配置远程调试(参考“使用IDE调试”部分的“配置远程调试”步骤),输入服务器IP和端口(如localhost:5005),点击Debug即可连接。
5. 高阶调试技巧
- 条件断点:在IDE中右键点击断点,设置条件(如
count > 10),仅当条件满足时程序暂停,适合调试循环或复杂分支逻辑。 - 多线程调试:通过
Threads窗口查看所有线程状态,右键点击线程可设置线程断点(仅暂停指定线程)。 - 日志辅助:在代码中添加
System.out.println或日志框架(如Log4j、SLF4J)输出关键信息,辅助定位问题(尤其适合无法复现的问题)。 - 性能分析:使用JProfiler、YourKit等工具分析内存泄漏、CPU占用等问题,提升调试效率。
以上方法覆盖了Debian系统下调试Java程序的常见场景,可根据实际需求选择命令行工具(jdb)或图形化IDE,远程调试则适合分布式系统或服务器环境。
以上就是关于“如何在Debian上调试Java程序”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm