商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Ubuntu下Java调试技巧有哪些

Ubuntu下Java调试技巧有哪些

  发布于2026-07-27 阅读(0)

扫一扫,手机访问

在Ubuntu环境下做Ja va调试,方法其实不少,从命令行到IDE,再到远程连接,各有各的适用场景。下面把这些技巧从头到尾梳理一遍,环境配置、基础调试、进阶玩法,一次讲清楚。

Ubuntu下Ja va调试技巧有哪些

一、基础环境准备

调试之前,先把环境搭好。Ubuntu上安装JDK很简单:sudo apt update && sudo apt install default-jdk,然后用ja va -version确认一下版本。环境变量这块,编辑~/.bashrc,加上export JA VA_HOME=/usr/lib/jvm/ja va-版本号-amd64(具体版本号换成实际安装的),再补上export PATH=$JA VA_HOME/bin:$PATH,最后source ~/.bashrc使其生效。编译Ja va代码时,记得加个-g参数,比如ja vac -g HelloWorld.ja va,这样生成的class文件里会包含调试信息,后续看变量值和行号都方便。

二、命令行调试(jdb工具)

jdb是JDK自带的命令行调试器,对于习惯终端操作的人来说,轻量又直接。基本流程是这样的:

  1. 启动调试会话:直接输入jdb HelloWorld(HelloWorld是类名),进入调试模式。
  2. 设置断点:用stop in HelloWorld.main在main方法第一行停下,或者stop at HelloWorld:7在指定行号设置断点。
  3. 启动程序:输入run,程序会跑到断点处暂停。
  4. 单步调试:step会进入方法内部,next跳过方法调用,逐行执行。
  5. 查看变量:print a看变量a的值,locals列出当前帧所有局部变量。
  6. 继续执行:cont让程序继续跑到下一个断点或结束。

虽然命令行界面没那么直观,但胜在够用,而且不依赖任何IDE。

三、IDE图形化调试(推荐)

IntelliJ IDEA、Eclipse这类IDE的图形化调试界面,效率确实高不少。操作要点如下:

  • 设置断点:在代码行号左侧点击一下,出现红色圆点就是断点。
  • 启动调试:右键点击包含main方法的文件,选择“Debug File”(IntelliJ IDEA)或“Debug As → Ja va Application”(Eclipse)。
  • 单步操作:工具栏里的“Step Into”(进入方法)、“Step Over”(跳过方法)、“Step Return”(跳出方法),配合使用很顺手。
  • 查看变量与表达式:在“Variables”面板看当前变量值;或者用“Evaluate Expression”(Alt+F8)输入自定义表达式,比如a + b,直接计算结果。
  • 修改变量值:在“Variables”面板双击变量值,比如把a从5改成10,看看程序行为会怎么变,这招在排查逻辑时特别好用。

四、远程调试配置

如果程序跑在远程Ubuntu服务器上,需要开启远程调试功能。步骤如下:

  1. 启动程序时添加JVM参数:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005,端口可以自定义,这里用5005。
  2. IDE连接远程调试:在IntelliJ IDEA中点击“Run → Edit Configurations”,添加“Remote JVM Debug”配置,填入远程服务器IP和端口,点击“Debug”就连上了。

远程调试最大的好处是实时排查生产环境问题,而且不需要重启服务,非常实用。

五、高级调试技巧

  1. 条件断点:在IDE断点视图里右键点击断点,选“Condition”,输入布尔表达式,比如i == 5。只有条件满足时程序才会暂停,省去了大量无意义的单步执行。
  2. 异常断点:添加Ja va Exception Breakpoint,比如NullPointerException,程序抛出该异常时自动暂停,快速定位异常发生位置。
  3. 监视点:右键点击类属性,选“Add Watchpoint”,当属性被访问或修改时暂停,排查变量被意外修改的问题首选。
  4. 日志与性能分析:用System.out.println或日志框架(如Log4j)打详细日志,辅助排查难以复现的问题。同时可以用top -p $(pgrep -f 程序名)监控CPU和内存,或者借助VisualVM、JProfiler分析内存泄漏、CPU占用过高等性能瓶颈。

以上这些技巧,从基础到进阶,覆盖了Ubuntu下Ja va调试的常见场景。实际用起来,可以根据具体需求灵活组合,效率自然会上去。

本文转载于:https://www.yisu.com/ask/82413874.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注