无法使用eclipse在Java中进行调试
我正在尝试使用Eclipse作为IDE在我的机器上调试一个简单的Java应用程序。 当我尝试通过进入Debug Perspective来调试应用程序时,我设置了一个断点并开始调试。 在几秒钟内,出现以下弹出窗口:
Launching unicodeRead has encountered a problem. Cannot connect to VM
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)
我该如何纠正? 为什么会这样?
我刚遇到同样的问题。
昨天一切正常,现在没什么 – 和你给的一样错误。 我发现网络管理员在此期间做了一些改变。 防火墙有些东西。 问题是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
虽然写入主机文件更改立即生效,但我认为有些进程锁定了这个并且在我的情况下重启是必要的。 在那之后,一切都恢复了。
看起来像这里一样的问题。 重新启动电脑修复了那里的问题。 我还没有找到任何其他解决方案。
它非常简单,只需在eclipse.ini文件中进行以下更改即可。
-vm binary\com.sun.java.jdk.win32.x86_1.6.0.u43\jre\bin\javaw.exe
我的情况是我在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
解决了我的问题是删除glassfish主文件夹上domains文件夹中的整个domain1文件夹。 Eclipse会要求您重新创建一个域,然后一切都会再次运行。
我在使用-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
我在ubuntu机器上遇到了同样的错误,因为/ etc / hosts文件出了问题。 我已经注释掉了localhost到127.0.0.1的映射,并且进一步复杂化了一个交换文件。
这是我/ etc / hosts的第一行:
127.0.0.1 #localhost
删除#修复了问题,而重新启动可以理解没有。
我的事业和解决方案完全不同。
我认为在我的情况下,这是由于安装了JProfiler。 我通过卸载JProfiler并使用-clean
选项启动eclipse来修复它。 我怀疑JProfiler将自己插入调试器中。 -clean
选项迫使Eclipse重新评估其插件,因此仅此一项就足够了。
继续@ gonadarian的回答,似乎Eclipse
使用端口127.0.0.1
进行调试。 此端口也称为localhost
。 可以删除此错误的方法是确保上述端口上没有运行任何进程或服务。 在Linux上执行此操作的方法是:
-
以
root
输入命令:
netstat -tulpn | grep 127.0.0.1
-
如果上述端口上正在运行进程,它将以以下格式显示:
process_id/process name
。 -
杀死上面的过程如下:
kill -KILL process_id
-
重新启动计算机以使这些更改生效。 不应再出现错误。
- Maven – java.lang.ClassNotFoundException:com.mysql.jdbc.Driver
- Eclipse Juno中没有“运行”菜单或工具栏按钮
- Eclipse中大胆的黑色光标删除代码,我不知道如何摆脱它
- 在Eclipse上,“首选项 – >常规 – >工作区 – >使用本机挂钩或轮询刷新”是做什么的?
- 使用objectContribution(弹出窗口)到CVS历史记录视图的任何已知问题/错误? 它不起作用
- Eclipse正在运行错误的类
- 如何在Eclipse中创建可运行的JAR,就像在Eclipse中一样
- Tomcat 7.0版仅支持J2EE 1.2,1.3,1.4和Java EE 5和6 Web模块
- 在Eclipse中预构建事件