redhat-developer / redhat-developer/vscode-java
Package error not reported with "java.jdt.ls.javac.enabled":"on"
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
Describe the bug
When using "java.jdt.ls.javac.enabled":"on" on a unmanaged project, if the package does not match the folder hierarchy, no error is reported in VSCode interface
To Reproduce
- Unzip Demo25-javac-on.zip
- Open folder ... Demo25-javac-on
- Open file foo\bar\ex02.java -> The package is incorrect (bar instead of foo.bar) but no error is reported
- File ex01.java has the correct package
- File ex03.java has no package (compact source file)
Expected behavior
A package error should be reported for ex02.java and ex03.java . In fact, the class file are not placed in the correct folders in the workspace cache folder (see left side of the picture below). When javac is on, the class are placed in folders according to the package declared in the java file instead of the original folder hierarchy. So since the class file matches the package, no package error is reported. The correct behavior is to keep the class files in the same folders of the source java files like when javac is off (right side of picture below)
Screenshots
Environment
- Operating System: Debian 13
- JDK version: 25
- Visual Studio Code version: 1.121
- Java extension version: 1.54.0
Additional Information
Maybe it is a problem in the JDT-LS from Eclipse?
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Décompressez Demo25-javac-on.zip et reproduisez le problème avec "java.jdt.ls.javac.enabled":"on" en comparant foo\bar\ex02.java à ex01.java et ex03.java. Examinez la manière dont les diagnostics de package et les chemins de fichiers de classe de workspace-cache sont produits, puis vérifiez que ex02.java et ex03.java signalent des erreurs de package et que les classes mises en cache conservent leurs dossiers source.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java, typescript, vscode
- Domaine
- developer-experience, tooling
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 48/100