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
按钮…..
问题有很长一段时间被问到了,但我最近遇到了同样的问题。
-
打开任务管理器
-
杀死所有“java.exe”进程
-
重新启动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会失去一些断点。