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

NeoVim jdtls配置下Lombok抛出异常的原因排查

NeoVim配置Java开发环境(含Lombok)遇到jdtls错误问题

我正在为NeoVim配置Java开发环境,遵循官方配置指南搭建Spring应用,项目中使用了Lombok。查看lsp.log时发现NeoVim与eclipse.jdt.ls服务器通信出现错误,但项目在命令行和IntelliJ中通过Maven可以正常编译。

已检查的内容:

  • 项目(由Spring初始化)和本地文件系统使用的Lombok版本一致(nvim-jdtls配置要求必须指定版本)
  • 搜索过该错误信息,未找到相关结果
  • 在Mac上通过brew安装了jdtls
  • Java进程显示已加载Lombok,配置看似正常(ps aux | grep java输出如下)

错误日志

[ERROR][2024-01-26 19:44:18] ...lsp/handlers.lua:535    
26 Jan 2024, 19:44:18 
Lombok注解处理器类lombok.eclipse.handlers.HandleGetter执行失败
'java.lang.StringBuffer org.eclipse.jdt.internal.compiler.ast.Expression.print(int, java.lang.StringBuffer)'
java.lang.NoSuchMethodError: 'java.lang.StringBuffer org.eclipse.jdt.internal.compiler.ast.Expression.print(int, java.lang.StringBuffer)'
at lombok.eclipse.handlers.EclipseHandlerUtil.createAnnotation(EclipseHandlerUtil.java:1335)
at lombok.eclipse.HandlerLibrary$AnnotationHandlerContainer.handle(HandlerLibrary.java:105)
at lombok.eclipse.HandlerLibrary.handleAnnotation(HandlerLibrary.java:237)
at lombok.eclipse.TransformEclipseAST$AnnotationVisitor.visitAnnotationOnField(TransformEclipseAST.java:245)
at lombok.eclipse.EclipseNode.traverse(EclipseNode.java:110)
at lombok.eclipse.EclipseAST.traverseChildren(EclipseAST.java:231)
at lombok.eclipse.EclipseNode.traverse(EclipseNode.java:79)
at lombok.eclipse.EclipseAST.traverseChildren(EclipseAST.java:231)
at lombok.eclipse.EclipseNode.traverse(EclipseNode.java:74)
at lombok.eclipse.EclipseAST.traverseChildren(EclipseAST.java:231)
at lombok.eclipse.EclipseNode.traverse(EclipseNode.java:69)
at lombok.eclipse.EclipseAST.traverse(EclipseAST.java:224)
at lombok.eclipse.TransformEclipseAST.go(TransformEclipseAST.java:222)
at lombok.eclipse.TransformEclipseAST.transform(TransformEclipseAST.java:183)
at lombok.eclipse.TransformEclipseAST.transform_swapped(TransformEclipseAST.java:107)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at lombok.launch.PatchFixesHider$Util.invokeMethod(PatchFixesHider.java:133)
at lombok.launch.PatchFixesHider$Transform.transform_swapped(PatchFixesHider.java:256)
at org.eclipse.jdt.internal.compiler.parser.Parser.endParse(Parser.java:12067)
at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:13269)
at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:13499)
at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:13456)
at org.eclipse.jdt.internal.compiler.parser.Parser.dietParse(Parser.java:11838)
at org.eclipse.jdt.internal.compiler.Compiler.internalBeginToCompile(Compiler.java:850)
at org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:393)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:447)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:425)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:411)
at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:214)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:342)
at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:79)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:286)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:192)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1077)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:296)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:352)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:441)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:444)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:555)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:503)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:585)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:207)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:300)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

ps aux输出

andrascsanyi     30619   0.0  4.3 414060112 1439760   ??  Ss    8:20PM   0:26.60 java -javaagent:/Users/andrascsanyi/.local/share/java/lombok-1.18.30.jar -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Dlog.protocol=true -Dlog.level=ALL -Xmx2G -Xms1G --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED -jar /opt/homebrew/Cellar/jdtls/1.31.0/libexec/plugins/org.eclipse.equinox.launcher_1.6.700.v20231214-2017.jar -configuration /opt/homebrew/Cellar/jdtls/1.31.0/libexec/config_mac -data /Users/andrascsanyi/.workspace/interviews

andrascsanyi     30652   0.0  0.6 419974960 191456   ??  S     8:20PM   0:03.48 /Users/andrascsanyi/.local/share/nvim/mason/packages/java-language-server/dist/mac/bin/java --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED -classpath /Users/andrascsanyi/.local/share/nvim/mason/packages/java-language-server/dist/classpath/gson-2.8.5.jar:/Users/andrascsanyi/.local/share/nvim/mason/packages/java-language-server/dist/classpath/protobuf-java-3.19.3.jar:/Users/andrascsanyi/.local/share/nvim/mason/packages/java-language-server/dist/classpath/java-language-server.jar org.javacs.Main

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 04:35:14