Ubuntu Java编译时如何进行代码调试
导读:Ubuntu下Java编译与调试实操指南 一 环境准备与编译要点 安装JDK:sudo apt update && sudo apt install default-jdk;验证版本:java -version、javac...
Ubuntu下Java编译与调试实操指南
一 环境准备与编译要点
- 安装JDK:sudo apt update & & sudo apt install default-jdk;验证版本:java -version、javac -version。建议选择与项目匹配的 JDK 8/11/17/21 等LTS版本。
- 编译时建议生成调试信息:javac -g YourClass.java,便于断点、变量查看与栈追踪。
- 如使用构建工具:Maven/Gradle默认会携带调试信息;若需远程调试,后续启动参数需开启调试代理。
二 在IDE中调试
- IntelliJ IDEA:创建/导入项目 → 在代码行号左侧点下断点 → 右键选择 Debug ‘类名.main()’ → 使用 Step Over/Into/Return、观察变量与调用栈。
- Eclipse:新建 Java Project → 在行号左侧设置断点 → 右键 Debug As → Java Application → 使用单步与变量视图排查。
- NetBeans:新建 Java Application → 设断点 → 右键 Debug File 或在工具栏 Debug 启动。
- VS Code:安装 Java 扩展包(Language Support、Debugger for Java 等)→ 配置 launch.json 的调试类型(如 java)→ F5 启动。
三 命令行调试 jdb
- 编译:javac -g HelloWorld.java
- 启动:jdb HelloWorld
- 常用命令:
- 断点:stop in HelloWorld.main 或 stop at HelloWorld:7
- 运行:run
- 单步:step / next
- 打印:print a、print b
- 继续:cont
- 适用场景:服务器无图形界面、快速验证问题、学习JVM调试命令。
四 远程调试与附加到进程
- 服务端启动参数(示例端口 5005):
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar your-app.jar
如需先挂起等待调试器连接:将 suspend 设为 y。 - 客户端连接:
- IDE:创建 Remote JVM Debug 配置,Host 填服务器IP,Port 填 5005,启动即可附加。
- jdb:jdb -attach server_ip:5005。
- 适用场景:调试容器/云主机上的Java进程、无法在目标机直接使用IDE的情况。
五 进阶排错工具与技巧
- 线程与死锁:jps 查进程PID → jstack 导出线程快照,定位阻塞与死锁。
- GC与内存:jstat -gcutil 1000 观察GC频率;必要时用 jmap 导出堆转储进一步分析。
- 日志与异常栈:结合日志框架(如 SLF4J+Logback)输出关键路径日志;发生异常时从栈顶向下定位首个业务相关帧。
- IDE高级断点:条件断点、异常断点、监视点可显著提升定位效率。
- 性能分析:使用 Java Mission Control(JMC) 进行CPU采样、内存分析与事件监控。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Java编译时如何进行代码调试
本文地址: https://pptw.com/jishu/758088.html
