Java JDB:错误:传输错误202:gethostbyname:未知主机
我有一个与此非常相似的错误消息;然而,同一个帖子上的解决方案对我来说并不适用。不幸的是,编辑主机文件my-inJava JDB:错误:传输错误202:gethostbyname:未知主机,java,debugging,Java,Debugging,我有一个与此非常相似的错误消息;然而,同一个帖子上的解决方案对我来说并不适用。不幸的是,编辑主机文件my-in127.0.0.1 my-host name添加到我的主机文件(链接线程中的每个解决方案)对我没有任何帮助 在JDB中“run”之后,我得到以下错误消息: 正在初始化jdb 运行QuadtreeEBITMAP虚拟机启动异常:虚拟机初始化失败: /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/bin/Java -X
127.0.0.1 my-host name
添加到我的主机文件(链接线程中的每个解决方案)对我没有任何帮助
在JDB中“run”之后,我得到以下错误消息:
正在初始化jdb
运行QuadtreeEBITMAP虚拟机启动异常:虚拟机初始化失败:
/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/bin/Java
-Xdebug-Xrunjdwp:transport=dt_socket,address=patrick iMac.local:50547,suspend=y
四叉树映射
错误:传输错误202:gethostbyname:未知主机错误:JDWP
Transport dt_套接字初始化失败,Transport_INIT(510)JDWP
退出错误代理\u错误\u传输\u初始化(197):没有初始化传输
[debugInit.c:730]
致命错误:目标VM未能初始化
我正在使用MacOS,并试图通过终端直接启动JDB(而不是通过Eclipse或任何其他IDE)。网络管理员在此期间可能做了一些更改。一些防火墙的东西。问题是Eclipse试图在“localhost”(和一些随机端口)上建立到JVM的连接。你可以试试这个解决方案
jvm正试图打开主机
patrick iMac.local
、端口50547
上的dt_套接字
,但需要首先将该主机名解析为IP地址。DNS查找将失败,因为它是分配给私有地址的虚拟主机名,DNS服务器通常不知道这些主机名,除非系统管理员对其进行了配置(公司通常会这样做)。有两种解决方案:
1) 在主机文件上添加主机名映射,保留为该IP配置的其他名称127.0.0.1 localhost patrick iMac.local
2) 按IP地址配置dt_套接字,无需触摸主机文件(推荐)
-Xrunjdwp:transport=dt_套接字,地址=127.0.0.1:50547
关于网络故障排除的一句话:*
未知主机
表示DNS问题,TCP连接根本没有启动,因为IP地址不可用。*
主机不可访问
表示TCP连接问题,IP已知但由于防火墙、路由或其他问题而无法访问<代码>ping到该IP将失败。*
端口不可访问
表示TCP连接问题,IP可访问,但端口不可访问,因为防火墙、服务关闭等原因。ping
到IP将工作,但到该端口的连接仍将失败。在我的案例中,问题与Java 8有关。我对远程调试器使用了Java 9+语法:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
而对于Java 8,您不能使用格式为*:port的地址,假定为:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
如果执行ping patrick iMac.local操作,将显示什么IP?这是要添加到主机文件的映射。@LuisMuñoz你完全正确。如果你决定写一个,我会接受你的答案!如果能明确主机文件映射应该特定于像我这样的noobs的错误消息,那就太好了。哇,伙计,你可能节省了我几个小时的时间。我还使用了带有
address=*:5005
的语法,但不知道Java8有这样的区别。你太棒了,谢谢你!这是正确的答案,非常感谢@我认为OP最初的问题可能不同。我相信谷歌将这个问题编入索引,就像我这样的人在问题发生时发现的那样。我很高兴我能做出贡献。两个Java版本中对我都适用的语法是address=0.0.0.0:5005
谢谢你节省了时间!