2009-11-10 185 views
1

当我尝试通过eclipse远程调试java应用程序时,出现以下消息。 “ ”无法连接到远程虚拟机,连接被拒绝。“ 什么可能是错误?远程调试Java应用程序

回答

3

您需要使用适当的选项调用要调试的进程,例如,

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

(替代用适当的端口如果必要的话),它听起来像VM未配置的端口上侦听。您可以使用netstat /a确认虚拟机是否在该端口上监听(或telnet

+0

当我尝试netstat /我得到: TCP DEV-MACHINE2:8787 localhost:1261 ESTABLISHED 这是我使用的端口号8787的唯一条目。 – devnull

1

你有没有端口8000,或者你的防火墙上打开了什么端口来配置远程连接?

+0

现在我正在测试我的机器。所以这不会是个问题吧? – devnull

+0

不,它不应该是一个问题,如果它在同一台机器上... –

1

远程应用程序需要先启动。您是否将参数添加到目标远程应用程序,以便它接受调试连接/

+0

是的,我确实启动了远程appln。 – devnull

+0

有时端口尚未从上次运行时释放。在Windows上执行'netstat -a'并查找远程应用程序用于侦听调试连接的端口。如果它仍然打开,您将无法打开远程调试会话。关闭端口/套接字,或者如果它关闭它,请更改使用的端口。希望在锁定第二个套接字之前,第一个套接字最终会释放。 –

1

确保您的JVM启动时使用这些选项

-Xdebug -Xrunjdwp:交通= dt_socket,地址= 8000,服务器= Y,暂停= N

和端口8000是免费

+0

如何检查端口是否空闲.. – devnull

+0

只是做一个netstat -an | grep 8000 –

2

对于客户端的调试,我遇到了同样的问题来到

URL -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=4081 

更改端口号解决了问题。