VS Code Metals扩展导入build.sbt失败无法连接构建服务器
问题成因
核心报错原因是Bloop构建服务启动时读取到了已失效的旧JDK路径配置:sbt bloopInstall执行阶段使用的是当前VS Code进程继承的系统环境变量中配置的JDK 11.0.14,因此该步骤可以正常完成,生成所有Bloop配置文件;但后续Bloop启动器(bloopgun)拉起BSP服务时,优先读取本地缓存的Bloop全局配置,该配置记录的是之前安装过、现已不存在的JDK 11.0.12路径,触发CreateProcess error=2(系统找不到指定文件)错误,最终BSP连接建立失败。
这类问题一般出现在JDK升级/更换安装路径后,旧的Bloop缓存配置没有同步更新的场景。
修复步骤
按顺序执行以下操作即可解决:
- 关闭所有运行中的Bloop进程:打开任务管理器,找到所有名为
java.exe且命令行参数包含bloop的进程,结束任务;也可以打开命令提示符执行bloop exit(如果全局安装了bloop命令)。 - 删除Bloop全局缓存目录:打开资源管理器,进入
C:\Users\你的用户名\路径,删除名为.bloop的隐藏文件夹,注意不要误删项目目录下的.bloop文件夹。 - 校验系统JDK配置:打开系统环境变量设置,确认
JAVA_HOME变量值为当前实际存在的JDK安装路径(即C:\Program Files\Java\jdk-11.0.14),打开新的命令提示符窗口执行java -version,确认返回的版本号为11.0.14。 - 重启VS Code,按下快捷键
Ctrl+Shift+P打开命令面板,搜索并执行Metals: Restart build server,等待Metals重新初始化构建服务即可。
如果执行完上述步骤后仍然读取旧JDK路径,可以手动强制指定Metals使用的JDK:
- 打开VS Code设置面板,搜索配置项
Metals: Java Home - 在配置项中填入当前可用JDK的绝对路径
C:\Program Files\Java\jdk-11.0.14 - 保存设置后再次重启构建服务器。
注意:不要随意修改项目目录下.bloop文件夹内的生成文件,这些文件会在执行bloopInstall时自动重新生成,手动修改可能引发其他配置错误。
内容的提问来源于stack exchange,提问作者Mikecraft1224
相关产品推荐
相关产品推荐

