ubuntu

Java编译Ubuntu时如何调试

小樊
52
2025-09-21 03:12:56
栏目: 编程语言

Java编译后在Ubuntu上的调试方法

一、准备工作:确保环境正确配置

在调试前,需确认Ubuntu系统已安装JDK并配置好环境变量。通过以下命令安装OpenJDK(以11为例):
sudo apt update && sudo apt install openjdk-11-jdk
配置环境变量:编辑~/.bashrc文件,添加export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64export PATH=$PATH:$JAVA_HOME/bin,然后运行source ~/.bashrc使配置生效。验证安装:javac -version(应显示编译器版本)和java -version(应显示运行时版本)。

二、编译时包含调试信息

调试需获取源代码与行号信息,编译时必须添加-g参数(生成包含调试信息的.class文件):
javac -g YourClassName.java
若未添加-g,调试工具将无法显示变量值、断点位置等关键信息。

三、使用命令行工具jdb调试

jdb是JDK自带的命令行调试工具,适合习惯终端操作的用户。

  1. 启动调试会话
    jdb YourClassNameYourClassName为包含main方法的类名)。
  2. 设置断点
    在指定行号设置断点(如第20行):stop at YourClassName:20
  3. 启动程序
    输入run,程序将在断点处暂停。
  4. 单步调试
    • step:进入当前行调用的方法内部;
    • next:执行当前行,不进入方法内部;
    • cont:继续执行程序直到下一个断点或结束。
  5. 查看变量
    使用print variableName(如print count)查看变量当前值。
  6. 查看堆栈跟踪
    若程序崩溃,输入where查看方法调用堆栈,定位错误发生位置。

四、使用IDE进行图形化调试(推荐)

IntelliJ IDEA、Eclipse等IDE提供直观的图形化调试界面,大幅提升效率。

1. IntelliJ IDEA步骤

2. Eclipse步骤

五、远程调试(适用于服务器场景)

若Java程序运行在远程Ubuntu服务器上,可通过远程调试连接到本地IDE。

  1. 启动远程调试
    在服务器上启动Java程序时,添加JVM参数(以5005端口为例):
    java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 -jar your-app.jar
    suspend=y表示程序启动后暂停,等待IDE连接;address为监听端口)。
  2. 本地IDE配置
    • IntelliJ IDEA:RunEdit Configurations+Remote,设置Port为5005,点击OK
    • Eclipse:RunDebug ConfigurationsRemote Java Application,设置Host(服务器IP)和Port(5005),点击Debug
  3. 开始调试:本地IDE会连接到远程服务器,程序暂停在断点处,后续操作与本地调试一致。

六、日志与工具辅助

0
看了该问题的人还看了