VSCode中Java的launch.json创建报错及JDWP连接失败问题
VSCode中Java调试JDWP连接被拒绝问题根源定位
错误终端输出:
Windows PowerShell 版权所有 (C) Microsoft Corporation。保留所有权利。 安装最新版 PowerShell 以获取新功能和改进! PS C:\Users\HP\OneDrive\Desktop\java practice> & 'C:\Program Files\Java\jdk-18.0.2\bin\java.exe' '-agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=localhost:57786' '--enable-preview' '-XX:+ShowCodeDetailsInExceptionMessages' '-cp' 'C:\Users\HP\AppData\Roaming\Code\User\workspaceStorage\7e23ce6c36a3d1de7ac32800a3c4efa3\redhat.java\jdt_ws\java practice_d64fcd83\bin' 'loops_2' ERROR: transport error 202: connect failed: Connection refused ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [s\open\src\jdk.jdwp.agent\share\native\libjdwp\debugInit.c:734] PS C:\Users\HP\OneDrive\Desktop\java practice>
问题根源及排查方向:
- 端口占用或冲突:调试命令中指定的
localhost:57786端口被其他进程占用,导致VSCode调试器无法监听该端口,Java进程无法建立连接。可通过netstat -ano | findstr :57786命令查看端口占用情况,杀死占用进程或更换调试端口。 - launch.json配置错误:检查调试配置中的
server参数,若设置为n(客户端模式),需确保VSCode调试器已提前启动监听对应端口;若配置的端口与实际启动的调试端口不匹配,也会导致连接失败。建议将server设为y(服务器模式),让Java进程等待调试器连接。 - 防火墙/安全软件拦截:Windows防火墙或第三方安全软件可能阻止了Java进程与VSCode调试器的本地网络连接。可临时关闭防火墙或添加VSCode、Java进程的允许规则测试。
- JDK版本兼容性:使用的JDK 18为预览版本,可能与VSCode的Red Hat Java扩展存在兼容性问题,导致JDWP传输初始化失败。建议更换为稳定版JDK(如JDK 17、11)重试。
- 工作区缓存损坏:VSCode的Java工作区缓存(路径
C:\Users\HP\AppData\Roaming\Code\User\workspaceStorage\...\jdt_ws)损坏,导致调试配置加载异常。可删除该缓存文件夹,重启VSCode后重新生成调试配置。
内容的提问来源于stack exchange,提问作者Sakshi Jarial
相关产品推荐
相关产品推荐

