redhat-developer / redhat-developer/vscode-java

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

Abierto
#4,220 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

bug Gradle
Lenguaje dominante
TypeScript
Estrellas
2.3k
Forks
546
Merge medio
20 h 1 min
PR fusionados (30 d)
11

Descripción

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.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con el repositorio de reproducción, sus ajustes de templates/vscode/ y los comandos de Gradle indicados en la issue. Sigue el fallo Missing system library a través de ASTParser, CoreASTProvider, JDTUtils y SemanticTokensHandler, y después compara el comportamiento con la configuración del proyecto Java 1.8. Se considera terminado cuando la autocompletación funciona sin el error registrado después de repetir la configuración indicada.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java, typescript
Área
developer-experience, tooling
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
28/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.