在 Debian 上调试 Java 的高效方法
一 环境准备
sudo apt update && sudo apt install openjdk-11-jdkjava -version、javac -versionecho 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> ~/.bashrcsource ~/.bashrcjavac -g HelloWorld.java,便于断点、变量查看与栈追踪。二 本地命令行调试 jdb
javac -g HelloWorld.javajdb HelloWorldstop at HelloWorld:5(按行)或 stop in com.example.MyClass.myMethod(按方法)run、step(进入方法)、next(不进入方法)、continue(继续到下个断点)print variableName、set variableName=valuejpsjdb -attach <PID>,随后可设置断点、查看线程与栈帧threads、thread <id>、wherecontquit。三 远程调试与 IDE 调试
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -jar app.jar
suspend=n:启动即运行;设为 y 则在断点处暂停等待调试器接入address=*:5005:监听所有接口的 5005 端口(云服务器需开放防火墙与安全组)java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 -jar app.jar四 常见问题与实用技巧
javac -g 重新编译-cp 指定正确路径,例如:java -cp bin HelloWorldss -lntp | grep 5005 或 netstat -tulpen | grep 5005suspend=n 避免阻塞启动;必要时临时改为 suspend=y 进行问题定位