Eclipse远程调试基于Java Debug Wire Protocol (JDWP),通过Socket通信实现本地Eclipse调试器与远程JVM的连接。调试器可主动连接远程JVM(Socket Attach)或监听端口等待远程JVM连接(Socket Listen),从而实现对远程Java程序的断点调试、变量查看、单步执行等功能。
vi /etc/sysconfig/iptables # 添加:-A INPUT -p tcp --dport 8000 -j ACCEPT
service iptables restart # 重启防火墙
Windows服务器需在“高级安全Windows防火墙”中添加入站规则。远程服务器需通过JVM参数启动调试模式,常见场景如下:
在启动命令中添加以下参数,让JVM以调试模式运行并监听指定端口(如8000):
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 -jar your-application.jar
transport=dt_socket:使用Socket传输协议;server=y:JVM作为调试服务器,等待调试器连接;address=8000:调试端口(可自定义,需与Eclipse配置一致)。修改Tomcat启动脚本(catalina.sh/catalina.bat或startup.sh/startup.bat),在JAVA_OPTS中添加调试参数:
export JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n"
suspend=n:JVM启动后不暂停,立即运行程序(若设为y,则需等待调试器连接后才启动)。Run → Debug Configurations...。Remote Java Application节点,选择New Configuration;Standard (Socket Attach)(默认,调试器主动连接远程服务器);192.168.1.100);8000)。Debug按钮,Eclipse将尝试连接远程JVM。连接成功后,会进入调试透视图,显示远程线程栈结构。F5进入方法、F6单步执行、F7跳出方法)进行调试。免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。