【问题标题】:Enabling jdwp on a jdk 14 app results in Address family not supported by protocol error在 jdk 14 应用程序上启用 jdwp 导致协议错误不支持地址系列
【发布时间】:2021-01-05 09:24:21
【问题描述】:

对于 JDK 14 应用,在 linux 上运行,添加以下 JVM 参数

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005

导致以下错误

Starting Main...
ERROR: transport error 202: socket creation failed: Address family not supported by protocol
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [open/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c:734]

将地址从*:5005 更改为localhost:5005 似乎可行,但它只绑定到本地主机。我知道 *:5005 在 JDK 12 上工作,但我找不到任何更改,事实上 JPDA 规范仍然提到 jse 14 https://docs.oracle.com/en/java/javase/14/docs/specs/jpda/conninv.html* 选项。有人知道我可以调查什么吗?它是我似乎找不到文档的错误还是功能。

【问题讨论】:

  • 默认情况下,jdwp 代理尝试绑定到[::]。显然,IPv6 在您的系统上不起作用。尝试0.0.0.0:5005 或添加-Djava.net.preferIPv4Stack=true JVM 选项。

标签: java remote-debugging jdwp


【解决方案1】:

正如@apangin 在评论中建议的那样。解决办法是指定地址为0.0.0.0:5005或者设置-Djava.net.preferIPv4Stack=trueJVM参数。

【讨论】:

    猜你喜欢
    • 2012-03-21
    • 2019-02-01
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 2013-02-04
    • 2013-04-28
    • 2019-10-03
    • 1970-01-01
    相关资源
    最近更新 更多