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

Neovim中Groovy Language Server启动失败排查求助

Neovim中Groovy Language Server启动失败问题排查与解决

问题概述

打开.groovy文件时,Neovim提示Client 1 quit with exit code 1 and signal 0,通过:LspLog查看日志发现核心错误:Error: Unable to access jarfile groovy-language-server-all.jar。已尝试更换SDKMan管理的不同Java版本,且手动在Mason安装目录的groovy-language-server/build/libs下执行java -jar groovy-language-server-all.jar能正常启动服务,对应的shell包装器也可运行,但Neovim内仍无法启动该LSP。

解决方案

1. 修正LSP配置中的Jar文件路径

Groovy LSP的启动命令可能指向了错误的Jar文件路径,需在lspconfig的配置中明确指定绝对路径:

require('lspconfig').groovyls.setup({
  cmd = {
    'java',
    '-jar',
    '/Users/wmoorby/.local/share/nvim/mason/packages/groovy-language-server/build/libs/groovy-language-server-all.jar'
  },
  -- 其他配置项(如root_dir、on_attach等)保持不变
})

确认路径与Mason实际安装的Groovy Language Server Jar文件位置完全一致。

2. 直接使用Mason提供的Shell包装器

如果Jar路径配置容易出错,可直接指定Mason生成的shell脚本绝对路径作为启动命令:

require('lspconfig').groovyls.setup({
  cmd = {'/Users/wmoorby/.local/share/nvim/mason/bin/groovy-language-server'},
  -- 其他配置项
})

同时确保脚本具备执行权限,终端中执行:

chmod +x /Users/wmoorby/.local/share/nvim/mason/bin/groovy-language-server

3. 同步Neovim与终端的Java环境

Neovim可能未继承终端的Java环境变量,导致无法正确找到Java运行时。在Neovim配置文件(如init.lua)中手动设置环境变量:

-- 替换为你当前SDKMan激活的Java版本路径
vim.env.JAVA_HOME = '/Users/wmoorby/.sdkman/candidates/java/17.0.8-amzn'
vim.env.PATH = vim.env.JAVA_HOME .. '/bin:' .. vim.env.PATH

设置后重启Neovim,通过:echo $JAVA_HOME验证环境变量是否生效。

LSP日志操作方法

查看日志尾部

  • 在Neovim中执行:LspLog打开日志文件后,按G键跳转到文件末尾;
  • 若需实时监控日志,可在终端中执行:
    tail -f ~/.local/state/nvim/lsp.log
    

清理LSP日志

直接删除日志文件即可,终端中执行:

rm ~/.local/state/nvim/lsp.log

或在Neovim中执行:

:!rm ~/.local/state/nvim/lsp.log

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 04:14:51