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
相关产品推荐
相关产品推荐

