英文:
Enabling jdwp on a jdk 14 app results in Address family not supported by protocol error
问题
在运行于Linux系统上的JDK 14应用程序中,添加以下JVM参数会导致以下错误:
启动主程序...
错误:传输错误 202:套接字创建失败:协议不支持的地址族
错误:JDWP传输dt_socket无法初始化,TRANSPORT_INIT(510)
JDWP退出错误AGENT_ERROR_TRANSPORT_INIT(197):未初始化任何传输[open/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c:734]
将地址从*:5005
更改为localhost:5005
似乎可以工作,但这样它只绑定到本地主机。我确信在JDK 12上*:5005
是有效的,我找不到任何关于这方面的更改,事实上,JPDA规范仍然提到了jse 14的*
选项:https://docs.oracle.com/en/java/javase/14/docs/specs/jpda/conninv.html。是否有人有任何想法可以让我查看?这是一个错误还是一个我找不到文档的功能呢?
英文:
For a JDK 14 application, running on linux, adding the following JVM parameter
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
results in the following error
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]
Changing the address from *:5005
to localhost:5005
seems to work but then it's only bound to localhost. I know for a fact that *:5005
worked on JDK 12 and I can't find any changes regarding this, In fact JPDA spec still mentions the *
option for jse 14 https://docs.oracle.com/en/java/javase/14/docs/specs/jpda/conninv.html. Anyone got any ideas what I can look into? Is it a bug or a feature for which I can't seem to find documentation for.
答案1
得分: 8
按照@apangin在评论中提到的建议,解决方案是将地址指定为0.0.0.0:5005
,或者设置-Djava.net.preferIPv4Stack=true
的JVM参数。
英文:
As @apangin suggested in the comment. The solution is to specify the address as 0.0.0.0:5005
or to set the -Djava.net.preferIPv4Stack=true
JVM parameter.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论