因为有几天我在启动语言服务器时遇到了一个错误。日志文件如下所示,指示为NollPointerException:
message: '[Error - 11:53:59 AM] Sep 23, 2022, 11:53:59 AM Error in JDT Core during AST creation\n' +
'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 null\n' +
'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 null\n' +
'\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版本,我已经安装了扩展包for,版本为0.25.1,我不会说其他与Java相关的内容。
发布于 2022-09-27 09:13:29
看来发布文件不见了。
你试过这个解决方案了吗?https://github.com/redhat-developer/vscode-java/issues/2698#issuecomment-1258845512
发布于 2022-10-17 11:52:54
我只需在$JAVA_HOME文件夹中创建一个发布文件,如下所示(我使用的是JavaVersion11.0.15):
echo "JAVA_VERSION=\"11.0.15\"" > $JAVA_HOME/releasehttps://stackoverflow.com/questions/73826448
复制相似问题