Eclipse错误:“无法连接到远程VM”

时间:2009-06-10 12:54:56

标签: java eclipse

从Eclipse IDE启动Debug时出现以下错误。

  

消息:“Failed to connect to remote VM. Connection Refused”

可能是什么原因?

26 个答案:

答案 0 :(得分:30)

您是否设置了远程VM以接受连接?

java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=10000,suspend=n yourServer

路上是否有防火墙?

您是否指定了正确的主机/端口?

您是否已连接到VPN?

答案 1 :(得分:26)

从eclipse中删除你的代理!

转到常规首选项(Windows - >偏好设置)中的网络连接,然后设置" Active Provider"到"直接"

remove proxy

之后重新启动Eclipse

答案 2 :(得分:5)

David Citron是对的 - 如果localhost没有正确解析,可能会导致此问题。以下是测试方法:

如果您的PC 未连接到网络(没有WiFi,没有网络电缆),它可以正常工作。如果在这些条件下工作,则可能需要确保地址正确解析为localhost。 DDMS和adb.exe用于调试和与VM通信的消息必须正确解析为PC上的localhost。 (是的,奇怪的是使用DDMS和adb的其他命令工作得很好,但调试没有。似乎DDMS或adb中的某些东西需要标准化,所以它们都在相同的条件下工作。)

如果您需要确保正确解析localhost

1)确保此行位于/Windows/System32/drivers/etc/hosts文件中:

127.0.0.1  localhost

(“127.0.0.1”和“localhost”之间可以有任意数量的空格)

并且 - 正如David Citron建议的那样 - 确保hosts文件有效且不存在任何错误或错误。

2)如果这不起作用,那么您可能还需要将PC的IPv4地址添加到hosts文件中,并将其解析为localhost。 (您可以使用ipconfig命令查找计算机的IPv4地址。)例如,如果您的计算机的IPv4地址为192.168.1.100,那么您需要添加该行

192.168.1.100  localhost

到您的主机文件。 (您可以在文件中的“127.0.0.1 localhost”行下面添加它。)

您可以使用netstat -b命令验证adb(以及运行的adb)是否正在侦听端口。 (请注意,您需要-b选项的管理员权限。我使用“以管理员身份运行”打开命令窗口。)

答案 3 :(得分:4)

使用0.0.0.0地址可以从任何远程计算机连接,例如:

-Xdebug -Xrunjdwp:transport=dt_socket,address=0.0.0.0:8000,server=y,suspend=y

答案 4 :(得分:2)

添加到您的运行脚本:

export JPDA_ADDRESS=8787
export JPDA_TRANSPORT=dt_socket
export JPDA_HOST=localhost

JAVA_OPTS=$JAVA_OPTS -Xms128m -Xmx512m -Dsun.rmi.dgc.client.gcInterval=3600000
JAVA_OPTS=$JAVA_OPTS -Dsun.rmi.dgc.server.gcInterval=3600000
JAVA_OPTS=-Xdebug -Xnoagent -Xrunjdwp:transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=n $JAVA_OPTS

答案 5 :(得分:2)

I solved it setting in Eclipse:

Windows --> Preferences --> Java --> Debug --> Debugger timeout: 10000

Before I had set "Debugger timeout: 3000" and I had problems with timeout.

答案 6 :(得分:2)

我们的开发映像上只安装了Tomcat服务,因此设置环境变量等没有任何影响。如果您需要通过Tomcat Windows服务执行此操作,您需要注意以下几点:

  • David Citron的评论是我需要让我的连接工作的最后一点。我们机器上的hosts文件已注释掉localhost(它应该通过DNS解析,但这对调试连接不起作用)。我取消了它并且能够连接。
  • 如果启用了用户访问控制,则需要使用管理员凭据访问服务控制面板或Tomcat监控应用程序或用于切换服务器状态的任何内容。监视器应用程序(记录为here)可能是最好的,因为您可以编辑调试选项的服务器设置并启动和停止服务器。
  • 我想也许您需要以管理员身份运行Eclipse才能终止Tomcat进程,但事实并非如此。拥有该远程附件后,您就可以使用该服务直至终止。

答案 7 :(得分:1)

如果您使用的是Windows操作系统,请在tomcat配置Tomcat6\bin\startup.bat中替换行。

替换

call "%EXECUTABLE%" start %CMD_LINE_ARGS%

call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%

答案 8 :(得分:1)

另一种可能性是调试代理绑定到错误的网络接口。

我尝试在VirtualBox VM中调试Windows 10 JVM时,我刚刚看到这个,并且我尝试从VirtualBox主机上运行的Eclipse进行连接。就我而言,代理仅绑定到127.0.0.1接口。

要修复,您可以限定address,包括要绑定到的接口的IP。例如:

java -agentlib:jdwp=transport=dt_socket,server=y,address=192.168.0.5:8000,suspend=n <other arguments>

答案 9 :(得分:1)

此错误的可能原因:

  1. 您的远程Java应用程序未运行。
  2. 检查您的主机和端口,这些条目很多次都不正确。
  3. 防火墙不允许访问您的远程端口。
  4. 您还可以查看此how to guide on eclipse remote debugging了解详情。

答案 10 :(得分:1)

对我有用的解决方案很奇怪

  1. 只需删除所有断点
  2. 在调试模式下重启tomcat(使用catalina.sh jpda start)
  3. 现在尝试连接并运行!!!!

答案 11 :(得分:1)

以下对我有用:从

编辑tomcat startup.sh的最后一行
exec "$PRGDIR"/"$EXECUTABLE" start "$@"`

export JPDA_ADDRESS=8000 export JPDA_TRANSPORT=dt_socket  
exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@" 

答案 12 :(得分:1)

如果您需要调试在Tomcat上运行的应用程序,请确保您的 Tomcat-folder / bin / startup.bat (如果使用的是Windows)包含以下行:

set JPDA_TRANSPORT="dt_socket"
set JPDA_ADDRESS=8000

call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%

答案 13 :(得分:0)

我将添加一个可能的解决方案,如果您在虚拟机(vmware等)上运行此解决方案,则主机或其他VM上的某些其他进程可能已经拥有您尝试连接的端口。停止其他进程或选择其他端口。

答案 14 :(得分:0)

增加属性的内存值

  • MEM_PERM_SIZE_64BIT
  • MEM_MAX_PERM_SIZE_64BIT
来自setDomainEnv.cmd

%weblogic_home%\user_projects\domains\your_domain\bin文件中的

答案 15 :(得分:0)

通过在调试窗口/透视图中断开所有远程Java应用程序并重新启动Eclipse,我解决了这个问题。这样做后我可以再次连接。

答案 16 :(得分:0)

我在安装Quicktime并从classpath中删除QTJava.zip后,为Weblogic收到此错误解决了这个问题。

https://blogs.oracle.com/adfjdev/entry/java_jre7_lib_ext_qtjava

答案 17 :(得分:0)

在Tomcat的nib文件夹中创建setenv.bat文件。 添加SET JPDA_ADDRESS = 8787;覆盖jpda端口 打开cmd,使用catalina jpda start转到Tomcat的bin文件夹和Start tomcat 在eclipse上设置调试点 接下来编译你的项目。 检查localhost:8080 / 在webapps文件夹下部署war或jar,这必须在Tomcat上部署war。 然后发送请求。调试点将被击中 注意:不要编辑catalina.bat文件。在setenv.bat文件中进行更改

答案 18 :(得分:0)

如果您使用的是Jboss:

更改文件jboss7.1.1 \ bin \ standalone.conf.bat行:

rem set "JAVA_OPTS=%JAVA_OPTS% -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"

为:

set "JAVA_OPTS=%JAVA_OPTS% -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"

答案 19 :(得分:0)

我尝试过这里提到的几件事,但下面的方法对我有用:

转到Eclipse的调试控制台,您可以在其中找到已存在的进程的名称。 右键单击该进程并选择&#34;终止并删除&#34;,这将终止该进程。 现在尝试再次启动该过程,它将起作用。

答案 20 :(得分:0)

在我的情况下,我将Windows防火墙关闭

1-单击“开始”按钮“开始”按钮的图片,然后单击“控制面板”,打开“Windows防火墙”。在搜索框中,键入firewall,然后单击“Windows防火墙”。

2-单击“打开或关闭Windows防火墙”。需要管理员权限如果系统提示您输入管理员密码或进行确认,请键入密码或提供确认。

3-单击要停止尝试保护的每个网络位置下的“关闭Windows防火墙(不推荐)”,然后单击“确定”。 这个页面有用吗?

有时您还需要

  1. 停止所有Vpn客户端服务(fortiClient,vpn Client ...)
  2. 停止防病毒防火墙(例如Kaspersky =&gt; Configuration =&gt; 反黑客)

答案 21 :(得分:0)

我遇到了在Ubuntu上运行Tomcat的问题。问题是selinux已启用,由于某种原因它不会让Eclipse连接到调试端口。禁用selinux或将其置于许可模式为我解决了这个问题。

答案 22 :(得分:0)

我正在使用jboss,因此重启问题的解决方案。

service jboss-portal restart

答案 23 :(得分:0)

我在Hybris遇到过这样的事。

  1. 检查资源监视器中的端口&gt;网络。检查其他服务是否正在使用您的端口。
  2. 1.2如果是,则需要在project.properties

    中更改属性

    1.3更改您的地址,任何可用的地址。在我的情况下,我从8000改为8080.然后保存。

    java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8080,suspend=n yourServer
    
    1. 在您的控制台中,使用命令&#39; ant all&#39;

    2. 重建您的蚂蚁
    3. 然后使用命令&#39; hybrisserver.bat debug&#39;

    4. 再次调试

答案 24 :(得分:0)

注意:对于通过管理控制台登录的glassfish服务器 - &gt;配置 - &gt; server-config - &gt; JVM的设置。 *请记住选中Debug的Enable复选框。现在 注意地址,这个地址将用于eclipse远程Java应用程序调试的端口。Check the snap shot in glassfish server here

答案 25 :(得分:0)

再次卸载并安装ADT android插件。