Maven Eclipse Debug“JDWP Transport dt_socket初始化失败,TRANSPORT_INIT(510)”

我正在尝试在Eclipse中调试Maven测试。 当我使用maven选项maven.surefire.debug启动测试时,我收到此错误:

ERROR: transport error 202: bind failed: Address already in use FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690] /bin/sh: line 1: 27500 Abort trap 

当我尝试在我的shell中启动调试时,它是一样的。

我试图添加maven选项forkMode = never,如果没有maven.surefire.debug选项,我的焊接工件会出现另一个错误:

 Error loading Weld bootstrap, check that Weld is on the classpath 

但是,Weld在我的课程中。

有任何想法吗 ?

要终止侦听端口的进程:

此命令应列出在所有端口上侦听的进程:

 netstat -ano 

-o选项将显示进程ID。

如果您使用的是* nix系统,则可以进一步改进:

 netstat -ano | grep  

当您拥有进程ID时,可以使用以下命令终止它:

视窗:

  • 打开任务管理器,使用视图>选择列> PID添加PID列
  • 找到该过程并右键单击以将其终止

其他:

 kill  

转到Debug configuration – > Remote Java Application – > Connect选项卡,选中Allow termination of remote JVM

然后,当您要重新启动服务器/ maven时,转到Debug perspective并单击read / stop按钮…..

问题有很长一段时间被问到了,但我最近遇到了同样的问题。

  1. 打开任务管理器

  2. 杀死所有“java.exe”进程

  3. 重新启动mvn调试

希望它会有所帮助

仅仅为了文档,我在本地运行时遇到了完全相同的错误:

错误:传输错误202:绑定失败:本地方法中已使用的地址FATAL ERROR:JDWP没有传输初始化,jvmtiError = AGENT_ERROR_TRANSPORT_INIT(197)错误:JDWP传输dt_socket初始化失败,TRANSPORT_INIT(510)

在我的情况下,端口不是问题,而是主机文件。 解决方案是添加/重新添加/取消注释:

127.0.0.1 localhost

配置文件将localhost设置为默认值,因此解决方案是添加该主机或将其更改为自定义主机。

通常问题是另一个进程使Maven调试端口5005保持打开状态。 在我的Mac上,我检查了哪个进程通过执行以下命令保持此端口处

 lsof -i tcp:5005 

输出是:

 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 9089 my_user 7u IPv4 0xe88ec542fd4cffc9 0t0 TCP *:avt-profile-2 (LISTEN) 

然后我杀了这个过程:

 kill -9 9089 

如果您希望这两个进程能够一起运行,则必须更改其中至少一个的Maven调试端口。 请参阅: http : //maven.apache.org/surefire/maven-surefire-plugin/examples/debugging.html 。

加上..我上周遇到了类似的问题,因为使用eclipse进行调试是不可能的。

 FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_LOAD(196) ERROR: transport library not found: dt_socket ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_LOAD(509) JDWP exit error AGENT_ERROR_TRANSPORT_LOAD(196): No transports initialized [../../../src/share/back/debugInit.c:690] 

可悲的是,我可以在网上找到的解决方案是有帮助的。

问题原来是防火墙以某种方式删除了我的JRE bin中的所有dll …(所以dt_socket.dll完全丢失了)。

重新安装整个JRE有帮助。

我的解决方案是删除项目的断点! 如果你有很多分支并且最近有所改变,有时eclipse会失去一些断点。