Compréhension complète des projets Maven et Gradle grâce à Eclipse JDT.LS, le moteur Java de VS Code.
Ce plugin branche le serveur de langage Eclipse JDT Language Server sur votre agent IA. Au lieu de deviner la structure du code par recherche textuelle, l'agent interroge le serveur comme le ferait un IDE : résultats plus précis, plus rapides et moins coûteux en contexte.
| Capacité | Exemple de demande |
|---|---|
| 🎯 Aller à la définition | « Où est défini ce symbole ? » |
| 🔎 Trouver les références | « Qui appelle cette fonction ? » |
| ✏️ Renommer un symbole | « Renomme cette classe dans tout le projet » |
| 🩺 Diagnostics | « Corrige les erreurs signalées dans ce fichier » |
| 💬 Survol (types, documentation) | « Quel est le type de cette variable ? » |
| 🗺️ Symboles du document et de l'espace de travail | « Liste les classes de ce module » |
Les capacités réellement disponibles dépendent de ce que le serveur implémente.
| Agent | Fichier de configuration LSP | Format |
|---|---|---|
| GitHub Copilot CLI | com.github.copilot/lsp.json |
Agent Plugins 1.0 (plugin.json racine) |
| Claude Code | .lsp.json |
Plugin Claude Code (.claude-plugin/plugin.json) |
Les deux fichiers décrivent le même serveur (jdtls). Ils existent en double car les deux agents n'utilisent pas les mêmes noms de champs (fileExtensions pour Copilot, extensionToLanguage pour Claude).
- JDK 21+ pour exécuter le serveur (vos projets peuvent cibler une version plus ancienne)
- Python 3 (le lanceur
jdtlsest un script Python)
Le plugin ne contient que la configuration : le serveur doit être installé sur votre machine et accessible dans le PATH.
macOS (Homebrew)
brew install jdtlsLinux / WSL
mkdir -p ~/.local/share/jdtls && \
curl -fsSL https://download.eclipse.org/jdtls/snapshots/jdt-language-server-latest.tar.gz \
| tar -xz -C ~/.local/share/jdtls && \
ln -sf ~/.local/share/jdtls/bin/jdtls ~/.local/bin/jdtlscopilot plugin marketplace add SebastienDegodez/copilot-instructions
copilot plugin install java-lsp@copilot-instructions-sebastien-degodezOu directement, sans passer par la marketplace :
copilot plugin install SebastienDegodez/copilot-instructions:plugins/java-lsp/plugin marketplace add SebastienDegodez/copilot-instructions
/plugin install java-lsp@copilot-instructions-sebastien-degodez
Dans GitHub Copilot CLI :
/lsp list
/lsp test jdtls
Dans Claude Code : ouvrez une nouvelle session dans votre projet, puis demandez par exemple « Trouve toutes les références de maFonction ». En cas de souci, claude --debug affiche les journaux de démarrage du serveur.
| Extension | Identifiant de langage |
|---|---|
.java |
java |
⏱️ Ce serveur démarre lentement : le délai est réglé via
startupTimeout(Claude Code) etinitializationTimeoutMs(Copilot CLI).
- Le premier démarrage importe le projet Maven/Gradle et peut être long : le délai de démarrage est porté à 2 minutes dans les deux configurations.
- Lancez
mvn compileougradle buildau moins une fois pour que les dépendances soient téléchargées. - Projet Lombok ? Ajoutez
"--jvm-arg=-javaagent:/chemin/vers/lombok.jar"dansargs.
| Symptôme | Solution |
|---|---|
/lsp test jdtls échoue avec « command not found » |
Le binaire n'est pas dans le PATH : relancez l'étape 1 et ouvrez un nouveau terminal. |
| Délai de démarrage dépassé | Augmentez startupTimeout (Claude) ou initializationTimeoutMs (Copilot) sur les très gros projets. |
Unsupported class file major version |
Le serveur tourne avec un JDK trop ancien : vérifiez que java -version renvoie 21 ou plus. |
Pour désactiver ce serveur dans un dépôt précis (Copilot CLI), ajoutez dans .github/lsp.json :
{ "lspServers": { "jdtls": { "disabled": true } } }java-lsp/
├── plugin.json # Manifeste Agent Plugins 1.0 (Copilot CLI)
├── .claude-plugin/
│ └── plugin.json # Manifeste Claude Code
├── .lsp.json # Serveur LSP pour Claude Code
├── com.github.copilot/
│ └── lsp.json # Serveur LSP pour Copilot CLI
├── plugin.yaml # Métadonnées du site de documentation
└── README.md
Auteur : Sebastien DEGODEZ · Licence : Apache 2.0