it-swarm.cn

无法使用eclipse在Java中进行调试

我正在尝试使用Eclipse作为IDE在我的机器上调试一个简单的Java应用程序。当我尝试通过进入Debug Perspective调试应用程序时,我设置了一个断点并开始调试。在几秒钟内,出现以下弹出窗口:

Launching unicodeRead has encountered a problem. Cannot connect to VM

转储到控制台的消息如下:

ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:708]
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)  

我该如何纠正?为什么会这样?

20
Sriram

我刚遇到同样的问题。

昨天一切正常,现在没什么 - 和你给的一样错误。我发现网络管理员在此期间做了一些改变。防火墙有些东西。问题是Eclipse尝试在“localhost”(和一些随机端口)建立与JVM的连接。当我尝试ping localhost(或127.0.0.1)时,我得到了以下内容:

C:\Windows\system32>ping 127.0.0.1
Pinging 127.0.0.1 with 32 bytes of data:
PING: transmit failed. General failure.
PING: transmit failed. General failure.
PING: transmit failed. General failure.
PING: transmit failed. General failure.

C:\Windows\system32>ping localhost
Ping request could not find Host localhost. Please check the name and try again.

它接缝,在某些情况下,DNS有望解决这个问题,如果防火墙阻止了对DNS的本地主机请求 - 东西中断。我不得不改变主机文件并删除以下行中的注释,所以我不再依赖DNS了:

# 127.0.0.1       localhost
# ::1             localhost

虽然写入主机文件更改立即生效,但我认为有些进程锁定了这个并且在我的情况下重启是必要的。在那之后,一切都恢复了。

24
gonadarian

看起来和 这里的问题相同 。重新启动电脑修复了那里的问题。我还没有找到任何其他解决方案。

4
Maza89

它非常简单,只需在Eclipse.ini文件中进行以下更改即可。

-vm
binary\com.Sun.Java.jdk.win32.x86_1.6.0.u43\jre\bin\javaw.exe
2
Calix

我在使用-X格式时看到错误:

Java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n myapp

当我切换到更新的格式时,错误消失了:

Java -agentlib:jdwp=transport=dt_socket,server=y,address=4000,suspend=n myapp
1
user674669

我的情况是我在hosts文件中有一堆域引用127.0.0.1,如下所示:

127.0.0.1 localhost domian1.local domain2.local domain3.local

有一天,我添加了另一个新域名来引用127.0.0.1。错误地,我将域名放在“localhost”前面,如下所示:

127.0.0.1 domain4.local localhost domian1.local domain2.local domainx.local

在此之后,我总是在调试时在Eclipse中有一个警报窗口:

无法连接到VM com.Sun.jdi.connect.TransportTimeoutException

在控制台中:

错误:传输错误202:连接失败:连接被拒绝错误:JDWP:无法通过localhost初始化传输:50470,在本机方法中通过127.0.0.1:50470 FATAL ERROR尝试localhost:JDWP没有传输初始化,jvmtiError = AGENT_ERROR_TRANSPORT_INIT(197)错误:传输错误202:连接失败:连接被拒绝错误:JDWP传输dt_socket无法初始化,TRANSPORT_INIT(510)JDWP退出错误AGENT_ERROR_TRANSPORT_INIT(197):没有传输已初始化[../../../src/share/back/ debugInit.c:690]

解决方案是始终将“localhost”保留在第一个位置。

127.0.0.1 localhost domian1.local domain2.local domainx.local domain4.local

0
Willie Z

解决了我的问题是删除glassfish主文件夹上的domains文件夹中的整个domain1文件夹。 Eclipse会要求您重新创建一个域,然后一切都会再次运行。

0
Carlos ABS