Eclipse JDT Language Server es una implementación específica del lenguaje Java del protocolo de servidor de lenguaje y se puede utilizar con cualquier editor que admita el protocolo para ofrecer un buen soporte para el lenguaje Java. El servidor se basa en:
El servidor de idiomas requiere un entorno de ejecución de Java 17 (como mínimo) para ejecutarse. Esto debe configurarse en la variable de entorno JAVA_HOME
o en la ruta del usuario.
Hay varias opciones para instalar eclipse.jdt.ls:
jdtls
o eclipse.jdt.ls
.git clone
y compila el proyecto mediante JAVA_HOME=/path/to/java/17 ./mvnw clean verify
. Opcionalmente, agregue -DskipTests=true
para omitir las pruebas. Este comando construye el servidor en la carpeta ./org.eclipse.jdt.ls.product/target/repository
.Algunos editores o extensiones de editor incluyen eclipse.jdt.ls o contienen lógica para instalarlo. Si ese es el caso, sólo necesitas instalar la extensión del editor. Por ejemplo, para Visual Studio Code puedes instalar el paquete de extensión para Java y él se encargará del resto.
Si compiló eclipse.jdt.ls desde la fuente, cd
en ./org.eclipse.jdt.ls.product/target/repository
. Si descargó una compilación de hitos o instantáneas, extraiga el contenido.
Para iniciar el servidor en la terminal activa, ajuste el siguiente comando como se describe más adelante y ejecútelo:
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
: esta es la ruta al directorio de configuración de su plataforma. Para Linux, utilice ./config_linux
. Para Windows, utilice ./config_win
. Para mac/OS X, utilice ./config_mac
.-jar ./plugins/...
para que coincida con la versión que creó o descargó.-data
: una ruta absoluta a su directorio de datos. eclipse.jdt.ls almacena información específica del espacio de trabajo en él. Esto debe ser único por espacio de trabajo/proyecto. Si desea depurar eclipse.jdt.ls, agregue -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
justo después de java
y asegúrese de que no se esté ejecutando nada más en el puerto 1044. Si desea depurar desde el inicio de la ejecución, cambie suspend=n
a suspend=y
para que la JVM espere a su depurador antes de iniciar el servidor.
También hay disponible un script contenedor de Python que hace que el inicio de eclipse.jdt.ls sea más conveniente (no es necesario hacer malabarismos con las opciones de Java, etc.). A continuación se describe un ejemplo de uso. El script requiere Python 3.9.
./org.eclipse.jdt.ls.product/target/repository/bin/jdtls
-configuration ~ /.cache/jdtls
-data /path/to/data
Todas las opciones de Java mostradas serán configuradas por el script contenedor. Tenga en cuenta que las opciones -configuration
apuntan a la carpeta de un usuario para garantizar que la carpeta de configuración en org.eclipse.jdt.ls.product/target/repository/config_*
permanezca intacta.
Ver Contribuir
El servidor de lenguaje Java admite sockets, canalizaciones con nombre y flujos estándar del proceso del servidor para comunicarse con el cliente. El cliente puede comunicar sus métodos de conexión preferidos configurando variables de entorno o, alternativamente, utilizando propiedades del sistema (por ejemplo, -DCLIENT_PORT=...
)
Para utilizar un socket simple , configure las siguientes variables de entorno o propiedades del sistema antes de iniciar el servidor:
CLIENT_PORT
: el puerto del socket al que conectarseCLIENT_HOST
: el nombre de host al que conectarse. Si no se establece, el valor predeterminado es localhost
.La conexión se utilizará para entrada y salida.
Para utilizar flujos estándar (stdin, stdout) del proceso del servidor, no configure ninguna de las variables de entorno anteriores y el servidor recurrirá a los flujos estándar.
Para sockets y canalizaciones con nombre, se espera que el cliente cree las conexiones y espere a que el servidor se conecte.
Este repositorio solo contiene la implementación del servidor. A continuación se muestran algunos clientes conocidos que consumen este servidor:
Nuestro servidor CI publica los archivos binarios del servidor en http://download.eclipse.org/jdtls/snapshots/.
Los repositorios P2 están disponibles en http://download.eclipse.org/jdtls/snapshots/repository/.
Las compilaciones de Milestone están disponibles en http://download.eclipse.org/jdtls/milestones/.
EPL 2.0, Ver archivo de LICENCIA.