Java代码在Ubuntu上的调试方法
在调试前,需确保Ubuntu系统已安装JDK(Java Development Kit)并配置好环境变量。
sudo apt update
sudo apt install openjdk-17-jdk
java -version和javac -version,确认输出JDK版本信息(如openjdk version "17.0.10")。~/.bashrc文件,添加以下内容(替换为实际Java路径):export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
保存后运行source ~/.bashrc使配置生效。IDE(如IntelliJ IDEA、Eclipse)提供可视化调试界面,适合新手及复杂项目。以下以IntelliJ IDEA社区版为例:
idea.sh启动。Create New Project→Java,设置项目路径后完成创建;或通过File→Import Project导入现有项目。int sum = add(a, b);),出现红色圆点即为断点。main方法的Java文件,选择Debug '类名.main()'(或点击工具栏绿色虫子图标),程序将在断点处暂停。Step Into(F7,进入方法内部)、Step Over(F8,跳过方法)、Step Out(Shift+F8,退出当前方法)。Variables标签页显示当前作用域变量值,鼠标悬停变量可查看详情。Variables标签页双击变量值,可直接修改并观察程序行为变化。若偏好命令行,可使用JDK自带的jdb(Java Debugger):
javac编译Java文件,生成.class字节码文件(如javac HelloWorld.java)。jdb HelloWorld
stop at命令指定断点行号(如第7行):stop at HelloWorld:7
run命令启动程序,程序将在断点处暂停。step(进入方法)、next(跳过方法)。print variableName(如print sum)。cont(继续运行至下一个断点或程序结束)。quit。若Java程序运行在远程Ubuntu服务器(如云服务器),可通过远程调试连接:
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -cp . YourClassName
server=y:表示作为调试服务器。suspend=n:程序启动时不暂停(若设为y,则需等待调试器连接后才启动)。Run→Edit Configurations→+→Remote,设置Host(服务器IP)、Port(如5005),点击OK。Run→Debug Configurations→Remote Java Application,填写Host和Port,点击Debug。i == 5),仅当条件满足时暂停,避免频繁手动跳过循环。NullPointerException),程序抛出指定异常时自动暂停,快速定位异常位置。Add Watchpoint,当属性被访问或修改时暂停,适合调试数据不一致问题。Ctrl+Shift+D(IntelliJ IDEA)或Ctrl+Shift+I,输入表达式(如list.size())查看实时结果,无需修改代码。Variables标签页双击),观察程序在不同输入下的行为,无需重新启动。