Le serveur de langage Eclipse JDT est une implémentation spécifique au langage Java du protocole Language Server et peut être utilisé avec n'importe quel éditeur prenant en charge le protocole, pour offrir une bonne prise en charge du langage Java. Le serveur est basé sur :
Le serveur de langage nécessite un environnement d'exécution Java 17 (au minimum) pour fonctionner. Cela doit être défini soit dans la variable d'environnement JAVA_HOME
, soit sur le chemin de l'utilisateur.
Il existe plusieurs options pour installer Eclipse.jdt.ls :
jdtls
ou eclipse.jdt.ls
.git clone
et construisez le projet via JAVA_HOME=/path/to/java/17 ./mvnw clean verify
. Ajoutez éventuellement -DskipTests=true
pour contourner les tests. Cette commande crée le serveur dans le dossier ./org.eclipse.jdt.ls.product/target/repository
.Certains éditeurs ou extensions d'éditeur regroupent Eclipse.jdt.ls ou contiennent une logique pour l'installer. Si tel est le cas, il vous suffit d'installer l'extension de l'éditeur. Par exemple pour Visual Studio Code, vous pouvez installer le Pack d'extension pour Java et il s'occupera du reste.
Si vous avez construit Eclipse.jdt.ls à partir des sources, cd
dans ./org.eclipse.jdt.ls.product/target/repository
. Si vous avez téléchargé une version de jalon ou d'instantané, extrayez le contenu.
Pour démarrer le serveur dans le terminal actif, ajustez la commande suivante comme décrit ci-dessous et exécutez-la :
java
-Declipse.application=org.eclipse.jdt.ls.core.id1
-Dosgi.bundles.defaultStartLevel=4
-Declipse.product=org.eclipse.jdt.ls.core.product
-Dlog.level=ALL
-Xmx1G
--add-modules=ALL-SYSTEM
--add-opens java.base/java.util=ALL-UNNAMED
--add-opens java.base/java.lang=ALL-UNNAMED
-jar ./plugins/org.eclipse.equinox.launcher_1.5.200.v20180922-1751.jar
-configuration ./config_linux
-data /path/to/data
-configuration
: c'est le chemin d'accès au répertoire de configuration de votre plateforme. Pour Linux, utilisez ./config_linux
. Pour Windows, utilisez ./config_win
. Pour Mac/OS X, utilisez ./config_mac
.-jar ./plugins/...
pour qu'il corresponde à la version que vous avez créée ou téléchargée.-data
: Un chemin absolu vers votre répertoire de données. Eclipse.jdt.ls y stocke des informations spécifiques à l'espace de travail. Cela doit être unique par espace de travail/projet. Si vous souhaitez déboguer Eclipse.jdt.ls lui-même, ajoutez -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
juste après java
et assurez-vous que rien d'autre ne s'exécute sur le port 1044. Si vous souhaitez déboguez dès le début de l'exécution, remplacez suspend=n
par suspend=y
afin que la JVM attende votre débogueur avant de démarrer le serveur.
Il existe également un script wrapper Python disponible qui rend le démarrage d'eclipse.jdt.ls plus pratique (pas besoin de jongler avec les options Java, etc.). Un exemple d’utilisation est décrit ci-dessous. Le script nécessite Python 3.9.
./org.eclipse.jdt.ls.product/target/repository/bin/jdtls
-configuration ~ /.cache/jdtls
-data /path/to/data
Toutes les options Java affichées seront définies par le script wrapper. Veuillez noter que les options -configuration
pointent vers le dossier d'un utilisateur pour garantir que le dossier de configuration dans org.eclipse.jdt.ls.product/target/repository/config_*
reste intact.
Voir Contribuer
Le serveur Java Language prend en charge les sockets, les canaux nommés et les flux standard du processus serveur pour communiquer avec le client. Le client peut communiquer ses méthodes de connexion préférées en configurant des variables d'environnement ou en utilisant les propriétés du système (par exemple -DCLIENT_PORT=...
)
Pour utiliser un simple socket , définissez les variables d'environnement ou les propriétés système suivantes avant de démarrer le serveur :
CLIENT_PORT
: le port de la socket auquel se connecterCLIENT_HOST
: le nom d'hôte auquel se connecter. S'il n'est pas défini, la valeur par défaut est localhost
.La connexion sera utilisée pour l’entrée et la sortie.
Pour utiliser les flux standard (stdin, stdout) du processus serveur, ne définissez aucune des variables d'environnement ci-dessus et le serveur reviendra aux flux standard.
Pour les sockets et les canaux nommés, le client doit créer les connexions et attendre que le serveur se connecte.
Ce référentiel contient uniquement l'implémentation du serveur. Voici quelques clients connus consommant ce serveur :
Notre serveur CI publie les binaires du serveur sur http://download.eclipse.org/jdtls/snapshots/.
Les référentiels P2 sont disponibles sous http://download.eclipse.org/jdtls/snapshots/repository/.
Les versions Milestone sont disponibles sous http://download.eclipse.org/jdtls/milestones/.
EPL 2.0, Voir fichier LICENSE.