redhat-developer / redhat-developer/vscode-java

No autocompletions in Java 1.8-based projects due to "Missing system library" error

Open
#4,220 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug Gradle
Dominant language
TypeScript
Stars
2.3k
Forks
546
Avg merge
20h 1m
Merged PRs (30d)
11

Description

This appears to be related to eclipse-jdt/eclipse.jdt.core#3298. I'm not sure when this changed but as of the update released yesterday I am now getting the following error in my logs any time I try to work on my Minecraft mod projects (e.g. glektarssza/minecraft-gtnh-customizer):

!ENTRY org.eclipse.jdt.core.manipulation 4 0 2025-10-29 09:43:37.638
!MESSAGE Error in JDT Core during AST creation
!STACK 0
java.lang.IllegalStateException: Missing system library
	at org.eclipse.jdt.core.dom.ASTParser.checkForSystemLibrary(ASTParser.java:311)
	at org.eclipse.jdt.core.dom.ASTParser.getClasspath(ASTParser.java:269)
	at org.eclipse.jdt.core.dom.ASTParser.internalCreateASTCached(ASTParser.java:1395)
	at org.eclipse.jdt.core.dom.ASTParser.lambda$1(ASTParser.java:1274)
	at org.eclipse.jdt.internal.core.JavaModelManager.cacheZipFiles(JavaModelManager.java:5709)
	at org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:1274)
	at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:918)
	at org.eclipse.jdt.core.manipulation.CoreASTProvider$1.run(CoreASTProvider.java:294)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.jdt.core.manipulation.CoreASTProvider.createAST(CoreASTProvider.java:286)
	at org.eclipse.jdt.core.manipulation.CoreASTProvider.getAST(CoreASTProvider.java:199)
	at org.eclipse.jdt.ls.core.internal.JDTUtils.getAst(JDTUtils.java:1953)
	at org.eclipse.jdt.ls.core.internal.handlers.SemanticTokensHandler.full(SemanticTokensHandler.java:45)
	at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$57(JDTLanguageServer.java:1205)
	at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:87)
	at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:667)
	at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:504)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:511)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1450)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2019)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)

To replicate the issue:

  1. Ensure you have Git LFS installed properly (see this comment on redhat-developer/vscode-java#4218 for why).
  2. Clone the repository.
  3. Install the extensions outlined in the Enabled Extensions Information section below.
  4. Copy the appropriate template VSCode settings from ./templates/vscode/ from inside the repository above into your ./.vscode/settings.json file inside the repository above.
  5. Replace the Java paths inside the copied templates to a version of Java 21.
  6. Ensure your JAVA_HOME environment variable is set to a version of Java 17.
  7. Run ./gradlew setupDecompWorkspace inside the repository above.
  8. Run ./gradlew build inside the repository above.
  9. Run ./gradlew eclipse inside the repository above.
  10. Try to get autocompletion in any file.
  11. Observe the issue.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the reproduction repository, its templates/vscode/ settings, and the Gradle commands listed in the issue. Trace the Missing system library failure through ASTParser, CoreASTProvider, JDTUtils, and SemanticTokensHandler, then compare behavior for the Java 1.8 project setup. Done means autocompletion works without the logged error after repeating the listed setup.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, typescript
Domain
developer-experience, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.