Eclipse JDT 语言服务器是语言服务器协议的 Java 语言特定实现,可以与支持该协议的任何编辑器一起使用,为 Java 语言提供良好的支持。服务器基于:
语言服务器需要(至少) Java 17的运行时环境才能运行。这应该在JAVA_HOME
环境变量中或用户的路径中设置。
有几个选项可以安装 eclipse.jdt.ls:
jdtls
或eclipse.jdt.ls
。git clone
克隆存储库,并通过JAVA_HOME=/path/to/java/17 ./mvnw clean verify
构建项目。可以选择附加-DskipTests=true
以绕过测试。此命令将服务器构建到./org.eclipse.jdt.ls.product/target/repository
文件夹中。某些编辑器或编辑器扩展捆绑 eclipse.jdt.ls 或包含安装它的逻辑。如果是这种情况,您只需要安装编辑器扩展即可。例如,对于 Visual Studio Code,您可以安装 Java 扩展包,它将处理其余的事情。
如果您从源代码构建了 eclipse.jdt.ls,请cd
进入./org.eclipse.jdt.ls.product/target/repository
。如果您下载了里程碑或快照版本,请提取内容。
要在活动终端中启动服务器,请按如下所述调整以下命令并运行它:
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
的值:这是平台配置目录的路径。对于 Linux,请使用./config_linux
。对于 Windows,请使用./config_win
。对于 mac/OS X,请使用./config_mac
。-jar ./plugins/...
中 jar 的文件名以匹配您构建或下载的版本。-data
的值:数据目录的绝对路径。 eclipse.jdt.ls 在其中存储工作区特定信息。每个工作区/项目这应该是唯一的。如果您想调试 eclipse.jdt.ls 本身,请在java
之后添加-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
并确保端口 1044 上没有其他任何程序运行。如果您想从执行开始进行调试,将suspend=n
更改为suspend=y
这样 JVM 将在启动服务器之前等待您的调试器。
还有一个可用的 Python 包装器脚本,可以使 eclipse.jdt.ls 的启动更加方便(无需与 Java 选项等打交道)。下面描述了示例用法。该脚本需要 Python 3.9。
./org.eclipse.jdt.ls.product/target/repository/bin/jdtls
-configuration ~ /.cache/jdtls
-data /path/to/data
所有显示的 Java 选项将由包装脚本设置。请注意, -configuration
选项指向用户的文件夹,以确保org.eclipse.jdt.ls.product/target/repository/config_*
中的配置文件夹保持不变。
请参阅贡献
Java语言服务器支持服务器进程的套接字、命名管道和标准流与客户端进行通信。客户端可以通过设置环境变量或使用系统属性(例如-DCLIENT_PORT=...
)来传达其首选连接方法
要使用普通套接字,请在启动服务器之前设置以下环境变量或系统属性:
CLIENT_PORT
:要连接的套接字的端口CLIENT_HOST
:要连接的主机名。如果未设置,则默认为localhost
。该连接将用于输入和输出。
要使用服务器进程的标准流(stdin、stdout),请不要设置任何上述环境变量,服务器将回退到标准流。
对于套接字和命名管道,客户端应创建连接并等待服务器连接。
该存储库仅包含服务器实现。以下是一些使用该服务器的已知客户端:
我们的 CI 服务器将服务器二进制文件发布到 http://download.eclipse.org/jdtls/snapshots/。
P2 存储库可在 http://download.eclipse.org/jdtls/snapshots/repository/ 下找到。
里程碑版本可在 http://download.eclipse.org/jdtls/milestones/ 下获取。
EPL 2.0,请参阅许可证文件。