您的位置:首页 >Ubuntu如何进行Java编译调试
发布于2026-04-30 阅读(0)
扫一扫,手机访问

想在Ubuntu上顺畅地开发和调试Ja va程序?其实没那么复杂。这份指南将带你从环境搭建到高级调试,一步步搞定所有关键环节。
万事开头先搭台。在Ubuntu上玩转Ja va,第一步就是把编译和运行环境准备好。
sudo apt update && sudo apt install openjdk-11-jdk。如果想用系统推荐的版本,换成 sudo apt install default-jdk 也行。ja va -version 和 ja vac -version,看看版本信息是否正常输出。sudo update-alternatives --config ja va 就能看到。echo 'export JA VA_HOME=/usr/lib/jvm/ja va-11-openjdk-amd64' >> ~/.bashrc。source ~/.bashrc。敲入 echo $JA VA_HOME 检查一下,路径显示正确就大功告成。ja vac,运行用的是 ja va。务必确保这两个命令来自同一个JDK版本,否则很容易出现“类找不到”或版本不兼容的怪问题。环境就绪,接下来就是最基础的编译和运行了。别看操作简单,里面有些细节不注意就会踩坑。
ja vac HelloWorld.ja va。顺利的话,当前目录下会生成一个 HelloWorld.class 文件。ja va HelloWorld。这里要特别注意,运行时只需要类名,千万别加上 .class 后缀,这是新手常犯的错误。ja vac File1.ja va File2.ja va File3.ja va。-d 指定输出目录,用 -cp 指定类路径:ja vac -d out -cp “.:/path/to/lib.jar” HelloWorld.ja va。ja va -cp “.:/path/to/lib.jar:out” HelloWorld。注意,类路径中的 . 代表当前目录,多个路径用冒号分隔。ja vac HelloWorld.ja va && ja va HelloWorld。这样只有编译成功,才会自动执行运行命令。程序出问题了?光看日志不够,还得学会调试。在命令行环境下,JDWP和JDB是你的得力助手。
ja va -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005 -cp . HelloWorld。transport=dt_socket:使用网络套接字进行通信。server=y:让程序作为调试服务器,等待被连接。suspend=y:程序一启动就暂停,直到调试器连上。如果改成 n,程序会直接运行,你可以随时连接上去调试。address=*:5005:监听本机所有网卡的5005端口。如果要进行远程调试,记得在防火墙开放这个端口。jdb 工具:jdb -attach localhost:5005。jdb HelloWorld。stop in HelloWorld.main(在方法入口处中断)或 stop at HelloWorld:行号(在指定行中断)。run。step(会进入方法内部)、next(越过方法调用)。cont(直到下一个断点)。print 变量名。where、threads。对于复杂的项目,图形化IDE的调试功能能极大提升效率。它们把断点、变量查看、表达式求值都做成了可视化的操作。
掌握了基本操作,还得能解决实际问题。这里列举几个典型场景和排查思路。
ja va -version 和 ja vac -version 看看。ja va -cp “.:lib/*:out” HelloWorld。jstack 。这个命令能立刻告诉你所有线程的状态,有没有死锁一目了然。jstat -gcutil 1000 。它会每隔1秒输出一次GC数据,频繁的Full GC往往是性能瓶颈的信号。jmap -dump:format=b,file=heap.hprof 。拿到hprof文件后,可以用MAT或VisualVM等工具进行深度分析,查找内存泄漏。sudo update-alternatives --config ja va 命令可以交互式地选择系统默认的Ja va版本。记得,切换后要确保 ja vac 的默认版本也随之同步更新,保持一致性。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9