参考:
1. 远程调试普通程序
程序打成 jar 包,使用命令行执行:
java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=9999,server=y,suspend=n -jar your_app.jar
参数含义:
-XDebug 启用调试。
-Xnoagent 禁用默认sun.tools.debug调试器。
-Djava.compiler=NONE 禁止 JIT 编译器的加载。
-Xrunjdwp 加载JDWP的JPDA参考执行实例。
transport 用于在调试程序和 VM 使用的进程之间通讯。
dt_socket 套接字传输。
dt_shmem 共享内存传输,仅限于 Windows。
server=y/n VM 是否需要作为调试服务器执行。
address=3999 调试服务器的端口号,客户端用来连接服务器的端口号。
suspend=y/n 是否在调试客户端建立连接之后启动 VM 。
在 eclipse 配置调试:
2. 远程调试 tomcat web 程序:
修改 startup.bat 文件,linux 环境下修改 startup.sh 文件
call "%EXECUTABLE%" start %CMD_LINE_ARGS%
改为:
call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%