无法使用eclipse开始调试java应用程序

时间:2014-12-29 16:01:06

标签: java eclipse debugging jvm

我有一个java应用程序,我试图使用eclipse进行调试。当我启动调试时,我在控制台中看到此错误消息:

FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=JVMTI_ERROR_INTERNAL(113)
ERROR: transport error 202: connect failed: Connection refused ["transport.c",L41]
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) ["debugInit.c",L500]
JDWP exit error JVMTI_ERROR_INTERNAL(113): No transports initialized

我不是试图远程调试java应用程序。我的java应用程序在eclipse中设置为一个项目。我创建了一个调试配置并尝试使用它启动应用程序。

在这个论坛上查看了各种选项后,我尝试了ping localhost和127.0.0.1。他们都成功了(没有问题)。我不知道为什么会发生这种情况。

然而,调试适用于简单的测试类!

在失败时,这是我在eclipse日志中看到的:

eclipse.buildId=4.4.1.M20140925-0400
java.version=1.7.0_71
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_IE
Framework arguments:  -product org.eclipse.epp.package.java.product
Command-line arguments:  -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.java.product

org.eclipse.jdt.launching
Error
Mon Dec 29 15:24:26 GMT 2014
Cannot connect to VM

com.sun.jdi.connect.TransportTimeoutException
    at org.eclipse.jdi.internal.connect.SocketTransportService.accept(SocketTransportService.java:105)
    at org.eclipse.jdi.internal.connect.SocketTransportImpl.accept(SocketTransportImpl.java:59)
    at org.eclipse.jdi.internal.connect.SocketListeningConnectorImpl.accept(SocketListeningConnectorImpl.java:153)
    at org.eclipse.jdt.internal.launching.StandardVMDebugger$ConnectRunnable.run(StandardVMDebugger.java:110)
    at java.lang.Thread.run(Unknown Source)
  • 使用的Eclipse版本:Luna(4.4.1),Indigo(3.7.2) - 两者都失败
  • 为项目配置的JDK版本:jdk1.5.0_15
  • 操作系统:Windows 7,64位
  • 防火墙:无
  • 试图在eclipse.ini中使用-vm参数启动eclipse,指向JRE 1.6.0_20。这不起作用

有人可以指导我说明问题所在。

感谢任何帮助。谢谢。

拉​​维。

1 个答案:

答案 0 :(得分:1)

您的错误消息作为Eclipse的调试常见问题中的条目:https://wiki.eclipse.org/Debug/FAQ#I_can_run_a_program_but_not_debug_it.3F.3F.3F

一些背景信息:Eclipse(以及其他所有IDE)总是使用套接字连接到JVM进行调试。 JVM是否在同一台计算机上并不重要。这意味着您的IP堆栈必须工作,安全设置必须允许Java打开端口等。

这可能会失败有几个原因:

  1. 使用端口。当您指定要使用的端口而不是让Eclipse为您找到一个端口时,通常会发生这种情况。
  2. 防火墙或其他一些安全软件拒绝Java打开端口
  3. 您的网络配置已变坏。一个案例是特洛伊木马已将IP地址添加到/etc/hosts(或您的操作系统的变体)以重定向您的流量。对于Windows,请查看文件夹%WINDOWS%\system32\drivers\etc\

    重要的一点是localhost解析为127.0.0.1