【发布时间】:2020-08-03 10:36:43
【问题描述】:
我有一个在远程主机上运行的 java 应用程序,从以下开始:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5555
我可以看到应用程序何时启动它侦听 tcp 端口 5555: tcp 0 0 0.0.0.0:5555 0.0.0.0:* LISTEN 451357/java
我已经在 iptables 中允许了这个端口。我可以使用 telnet 连接到这个端口。
但是每当我启动 Eclipse 远程调试时它永远不会连接,以下是错误:
无法连接到远程虚拟机。拒绝连接。 连接被拒绝:连接
每当 Eclipse 尝试连接时,我可以在 netstat 中看到 java 进程停止监听 5555。有人遇到过类似的问题吗?
java版本“1.8.0_181”
【问题讨论】:
-
程序是否终止? stdout/stderr 上有什么?
-
这能回答你的问题吗? What are Java command line options to set to allow JVM to be remotely debugged? --- 即使用
-agentlib:jdwp=...代替-Xdebug -Xrunjdwp:...,并将地址指定为*:5555 -
否,程序未终止。只有它停止侦听调试端口。 stdout 或 stderr 没有错误
-
还尝试使用 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5555 相同的行为
-
我没有解决方案,但我想确定我明白你在说什么。在尝试连接之前,您运行 netstat 并显示正在侦听端口的进程,然后您尝试连接,但失败了,然后当您再次运行 netstat 时,它不再在侦听端口了?假设这是真的,该服务是否侦听任何其他端口?这些侦听器的状态是否与调试器端口一样发生变化?
标签: java eclipse remote-debugging