对于在 linux 上运行的 JDK 14 应用程序,添加以下 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
似乎可以工作,但它只绑定(bind)到本地主机。我知道 *:5005
在 JDK 12 上工作,我找不到任何更改,事实上 JPDA 规范仍然提到 *
jse 14 的选项 https://docs.oracle.com/en/java/javase/14/docs/specs/jpda/conninv.html .有人知道我可以调查什么吗?它是我似乎无法找到文档的错误还是功能。
最佳答案
正如@apangin 在评论中建议的那样。解决方法是将地址指定为0.0.0.0:5005
或设置-Djava.net.preferIPv4Stack=true
JVM 参数。
关于java - 在 jdk 14 应用程序上启用 jdwp 导致协议(protocol)错误不支持地址系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63955736/