Языковой сервер 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/...
чтобы оно соответствовало версии, которую вы создали или скачали.-data
: абсолютный путь к вашему каталогу данных. eclipse.jdt.ls хранит в себе информацию, специфичную для рабочей области. Оно должно быть уникальным для каждой рабочей области/проекта. Если вы хотите отладить сам eclipse.jdt.ls, добавьте -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
сразу после java
и убедитесь, что на порту 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/.
Сборки Milestone доступны по адресу http://download.eclipse.org/jdtls/milestones/.
EPL 2.0, см. файл ЛИЦЕНЗИИ.