【发布时间】: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=trueJVM 选项。
标签: java remote-debugging jdwp