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

Sri*_*ram 21 java eclipse debugging

我正在尝试使用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)  
Run Code Online (Sandbox Code Playgroud)

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

gon*_*ian 27

我刚遇到同样的问题.

昨天一切正常,现在没什么 - 和你给的一样错误.我发现网络管理员在此期间做了一些改变.防火墙有些东西.问题是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.
Run Code Online (Sandbox Code Playgroud)

C:\Windows\system32>ping localhost
Ping request could not find host localhost. Please check the name and try again.
Run Code Online (Sandbox Code Playgroud)

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

# 127.0.0.1       localhost
# ::1             localhost
Run Code Online (Sandbox Code Playgroud)

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

  • 我在OS X 10中遇到了这个问题.我注意到我的hosts文件中有一个localhost的第二个条目指向我的LAN地址.删除第二个条目解决了我的问题(但我没有注意到它没有运行ping!) (2认同)

vla*_*ror 7

有同样的问题,但解决方案是使用选项运行应用程序-server=y,而不是使用-server=n.

前:

java -agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=localhost:5005 
Run Code Online (Sandbox Code Playgroud)

后:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=localhost:5005
Run Code Online (Sandbox Code Playgroud)


Maz*_*a89 5

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


use*_*669 5

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

java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n myapp
Run Code Online (Sandbox Code Playgroud)

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

java -agentlib:jdwp=transport=dt_socket,server=y,address=4000,suspend=n myapp
Run Code Online (Sandbox Code Playgroud)