redhat-developer / redhat-developer/vscode-java

Spurious warning about incompatible .class files version in required binaries

Ouverte
#3,699 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
TypeScript
Étoiles
2.3k
Forks
546
Merge moyen
20 h 1 min
PR mergées (30 j)
11

Description

When I add logback 1.5.6 as a dependency in my POM, vscode tells me: “Incompatible .class files version in required binaries. Project 'simple' is targeting a 17 runtime, but is compiled against '(…)/.m2/repository/ch/qos/logback/logback-core/1.5.6/logback-core-1.5.6.jar' (from the container 'Maven Dependencies') which requires a 21 runtime”.

I believe that the warning is incorrect: extracting the content of .m2/repository/ch/qos/logback/logback-core/1.5.6/logback-core-1.5.6.jar and running javap -verbose on a few classes reveal a major version equal to 55.

The JAR is a multi-release one, including some classes specific to Java 21. I suspect that this confuses vscode.

Environment
  • Operating System: linux
  • JDK version: 17
  • Visual Studio Code version: 1.91.0
  • Java extension version: v0.27.0
Steps To Reproduce

Add logback 1.5.6 as a dependency in your POM.

Here is a sample project.

Logs (partial and redacted): messages, server.

Current Result

Warning

Expected Result

No warning

Additional Informations
  • mvn compile does not complain.
  • Might be related to #3319.
  • I posted an issue to logback before realizing that the problem seems to come from vscode.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par le Simple sample project lié, son POM et les messages/server logs joints ; reproduisez le problème avec JDK 17 et logback 1.5.6, puis examinez la gestion des multi-release JAR entries. C’est terminé lorsque l’exemple ne signale plus d’avertissement concernant un class-file incompatible, tout en continuant à être compilé correctement par Maven.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java, typescript
Domaine
developer-experience, devtools
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
38/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.