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

在Neovim(SpaceVim)中配置Vimspector调试Java遇端口问题求助

解决SpaceVim+Vimspector Java调试端口问题的方向

1. 厘清端口混淆问题

你当前错误地尝试连接JDTLS语言服务器的端口,但Vimspector的Java调试目标是你的Java应用进程,而非JDTLS本身。JDTLS的端口是它自身的服务端口,和应用调试完全无关。

2. 让Java应用固定开启调试端口

在Maven项目中,你需要让应用启动时开启固定的远程调试端口,而非依赖动态端口:

  • 临时启动方式:运行应用时直接添加JVM参数
    mvn exec:java -Dexec.mainClass="my.test.app.App" -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
    
    这里address=5005是自定义的固定调试端口,可按需修改。
  • 持久化配置方式:在pom.xml中添加插件配置
    在<build><plugins>节点下加入:
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>3.2.5</version>
      <configuration>
        <argLine>-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005</argLine>
      </configuration>
    </plugin>
    
    后续执行mvn test或mvn exec:java时,应用会自动在5005端口监听调试请求。

3. 修正.vimspector.json配置

调整配置文件,固定端口并补充项目关联信息:

{
  "configurations": {
    "Java Attach": {
      "adapter": "vscode-java",
      "filetypes": [ "java" ],
      "configuration": {
        "request": "attach",
        "hostName": "localhost",
        "port": 5005,
        "sourcePaths": [
          "${workspaceRoot}/src/main/java",
          "${workspaceRoot}/src/test/java"
        ],
        "projectName": "hello"
      }
    }
  }
}
  • port改为固定值5005,和应用启动时的端口保持一致
  • 添加projectName字段,对应你的Maven项目artifactId(此处为hello),帮助调试器正确关联项目代码

4. 调整调试流程

  1. 先启动带调试参数的Java应用,确认进程在监听5005端口
  2. 在Neovim中打开目标Java文件,按下[SPC] d c启动调试,此时无需手动输入端口即可直接连接

5. 错误排查补充

如果调试仍失败:

  • 用telnet localhost 5005测试端口连通性,确认应用进程正常监听
  • 执行:VimspectorShowLogs查看调试器日志,定位具体错误原因
  • 重新执行:VimspectorInstall vscode-java-debug,确保调试插件安装完整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 01:43:12