VSCode(Linux)中的Java语言服务器(redhad)错误



因为有几天我在启动语言服务器时遇到了一个错误。日志文件如下所示,指示NollPointerException:

message: '[Error - 11:53:59 AM] Sep 23, 2022, 11:53:59 AM Error in JDT Core during AST creationn' +
'Cannot invoke "org.eclipse.jdt.internal.compiler.util.JrtFileSystem.walkModuleImage(org.eclipse.jdt.internal.compiler.util.JRTUtil$JrtFileVisitor, int)" because the return value of "org.eclipse.jdt.internal.compiler.util.JRTUtil.getJrtSystem(java.io.File, String)" is nulln' +
'java.lang.NullPointerException: Cannot invoke "org.eclipse.jdt.internal.compiler.util.JrtFileSystem.walkModuleImage(org.eclipse.jdt.internal.compiler.util.JRTUtil$JrtFileVisitor, int)" because the return value of "org.eclipse.jdt.internal.compiler.util.JRTUtil.getJrtSystem(java.io.File, String)" is nulln' +
'tat org.eclipse.jdt.internal.compiler.util.JRTUtil.walkModuleImage(JRTUtil.java:242)n' +
'tat org.eclipse.jdt.internal.core.JavaProject.loadModulesInJimage(JavaProject.java:983)n' +
'tat org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:782)n' +
'tat org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1103)n' +
'tat org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1048)n' +
'tat org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1025)n' +
'tat org.eclipse.jdt.internal.core.JavaProject.buildStructure(JavaProject.java:538)n' +
'tat org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:266)n' +
'tat org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:597)n' +
'tat org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:328)n' +
'tat org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:314)n' +
'tat org.eclipse.jdt.internal.core.JavaProject.getModuleDescription(JavaProject.java:3917)n' +
'tat org.eclipse.jdt.internal.core.BasicCompilationUnit.initAttributes(BasicCompilationUnit.java:86)n' +
'tat org.eclipse.jdt.internal.core.BasicCompilationUnit.<init>(BasicCompilationUnit.java:67)n' +
'tat org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:1176)n' +
'tat org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:868)n' +
'tat org.eclipse.jdt.core.manipulation.CoreASTProvider$1.run(CoreASTProvider.java:294)n' +
'tat org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)n' +
'tat org.eclipse.jdt.core.manipulation.CoreASTProvider.createAST(CoreASTProvider.java:286)n' +
'tat org.eclipse.jdt.core.manipulation.CoreASTProvider.getAST(CoreASTProvider.java:199)n' +
'tat org.eclipse.jdt.ls.core.internal.handlers.SemanticTokensHandler.full(SemanticTokensHandler.java:46)n' +
'tat org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$53(JDTLanguageServer.java:1051)n' +
'tat org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:75)n' +
'tat java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)n' +
'tat java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)n' +
'tat java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)n' +
'tat java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)n' +
'tat java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)n' +
'tat java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)n' +
'tat java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)n',
level: 'info',
timestamp: '2022-09-23 11:53:59.397'
}

这种情况发生在如此简单的项目中,比如https://github.com/Reissner/icons,但并非总是如此。看起来有点不稳定。无法解决问题。我也是vs代码的新手。

也许这无关紧要,但我在linux上工作,VSCode具有版本1.71.2,我已经安装了Java扩展包,版本为v0.25.1我不会说其他与java有关的内容。

看起来缺少发布文件。

你尝试过这种解决方案吗?https://github.com/redhat-developer/vscode-java/issues/2698#issuecomment-1258845512

我只需要在$JAVA_HOME文件夹中创建一个发布文件,如下所示(我使用的是JAVA 11.0.15版本(:

echo "JAVA_VERSION="11.0.15"" > $JAVA_HOME/release

最新更新