2011-10-04 98 views
5

我需要使用远程调试程序通过SSH隧道调试Java应用程序。我在我的PC上配置了putty,并且我能够使用隧道连接到在服务器上运行的任何其他服务,但是eclipse远程调试器无法连接。无法通过SSH隧道远程调试JVM

在服务器端,我使用Java 1.6.0_21-B06开始与以下调试选项:

-Xrunjdwp:transport=dt_socket,address=8686,server=y,suspend=n

在我的笔记本电脑的ssh隧道被配置为:

L8686 IP_ADDR:8686

是在通过ssh隧道运行会话时JVM调试器有任何限制吗?

还有一件事,当我尝试连接时,在服务器控制台上,我可以看到以下日志mesage:

Listening for transport dt_socket at address: 8686

+0

您是否检查过防火墙/防病毒软件/病毒等所有恶意软件? – kan

回答

2

我有同样的场景,一切正常,这是我如何运行我的Java应用程序:

java -Xmx120m -agentlib:jdwp=transport=dt_socket,server=y,address=8000 -jar bla.jar 

可能是最有用的部分是一个-agentlib。

+0

辉煌!它现在适合我! –

0

Listening for transport dt_socket at address: 8686如果虚拟机启动或经常发生现有的调试会话关闭VM开始再次侦听调试连接。也许在服务器上运行tcpdump可能会给出关于哪个对等方关闭连接的线索,并且在该方面看起来更深一点。

2

您可以尝试使用L8686 localhost:8686,因为JVM可能拒绝来自非本地地址的连接?请注意,'localhost'是从服务器角度来看的地址。

+0

救了我的一天。谢谢! – bahti