You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code调试Java测试用例报错:Failed to launch debuggee VM

解决VS Code Java测试用例调试报错:Failed to launch debuggee VM. Reason: VM exited with status 1

问题关键信息

报错现象

  • 测试用例可正常运行,但单步调试时弹出错误:Failed to launch debuggee VM. Reason: VM exited with status 1
  • TEST RESULTS窗口无输出:
    The test run did not record any output.
    
  • DEBUG CONSOLE提示JDWP权限问题:
    ERROR: JDWP unable to get necessary JVMTI capabilities.
    
  • 语言服务日志显示测试代码不在构建路径:_/traceprofiler/src/test/java/com/xx/xx/traceprofiler [in dtxsql-java_92d3a23d] is not on its project's build path

当前配置(launch.json)

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "Launch TraceProfiler",
            "request": "launch",
            "mainClass": "com.xx.xx.traceprofiler.TraceProfiler",
            "args": [ "trace.qoe.profiler.log" ],
            "projectName": "traceprofiler",
            "cwd": "${workspaceFolder}${pathSeparator}traceprofiler"
        }
    ]
}

解决步骤

1. 修复测试代码的构建路径

  • Maven项目:确认src/test/java目录被正确识别为测试源目录。VS Code中通过「Project Manager for Java」查看项目结构,若该目录未标记为测试源,右键目录选择「Add Folder to Java Source Path」并指定为Test Source Folder。
  • 普通Java项目:打开「Java Projects」视图,在项目的「Source Paths」中添加src/test/java到测试源路径。

2. 创建测试专用的调试配置

当前launch.json是针对主程序启动的配置,调试JUnit测试需要单独配置:

  1. 打开「Run and Debug」面板,点击「create a launch.json file」,选择「Java」→「JUnit Test」。
  2. 生成适配项目的配置示例:
{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "Debug Test: ProgNodeTest",
            "request": "launch",
            "mainClass": "org.junit.runner.JUnitCore",
            "args": [
                "com.xx.xx.traceprofiler.ProgNodeTest"
            ],
            "projectName": "traceprofiler",
            "vmArgs": "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005"
        }
    ]
}

也可直接在测试代码中右键测试方法progNodeShouldBeInitialized,选择「Debug Test」,VS Code会自动生成临时调试配置。

3. 排查JDWP权限问题

  • 确保使用JDK 11+版本,避免JDK 8及以下的老旧版本,保证与VS Code Java扩展兼容。
  • 检查是否有其他进程占用调试端口(默认5005):Linux/macOS用lsof -i :5005,Windows用netstat -ano | findstr :5005,结束占用进程后重试。
  • 远程SSH环境下,确认端口转发配置正确,调试端口可正常访问。

4. 清理重建项目

  • Maven项目执行mvn clean compile test命令,清理旧构建文件并重新编译测试代码。
  • VS Code中执行「Java: Clean Java Language Server Workspace」命令,重启VS Code后让语言服务重新加载项目配置。

内容的提问来源于stack exchange,提问作者Russ Petersen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 19:53:15