O Eclipse JDT Language Server é uma implementação específica da linguagem Java do Language Server Protocol e pode ser usado com qualquer editor que suporte o protocolo, para oferecer um bom suporte para a linguagem Java. O servidor é baseado em:
O servidor de linguagem requer um ambiente de tempo de execução Java 17 (no mínimo) para ser executado. Isto deve ser definido na variável de ambiente JAVA_HOME
ou no caminho do usuário.
Existem várias opções para instalar o eclipse.jdt.ls:
jdtls
ou eclipse.jdt.ls
.git clone
e construa o projeto via JAVA_HOME=/path/to/java/17 ./mvnw clean verify
. Opcionalmente, anexe -DskipTests=true
para ignorar os testes. Este comando constrói o servidor na pasta ./org.eclipse.jdt.ls.product/target/repository
.Alguns editores ou extensões de editor agrupam eclipse.jdt.ls ou contêm lógica para instalá-lo. Se for esse o caso, você só precisa instalar a extensão do editor. Por exemplo, para Visual Studio Code você pode instalar o Extension Pack for Java e ele cuidará do resto.
Se você construiu eclipse.jdt.ls a partir do código-fonte, cd
em ./org.eclipse.jdt.ls.product/target/repository
. Se você baixou um marco ou compilação de instantâneo, extraia o conteúdo.
Para iniciar o servidor no terminal ativo, ajuste o seguinte comando conforme descrito abaixo e execute-o:
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
: este é o caminho para o diretório de configuração da sua plataforma. Para Linux, use ./config_linux
. Para Windows, use ./config_win
. Para mac/OS X, use ./config_mac
.-jar ./plugins/...
para corresponder à versão que você compilou ou baixou.-data
: um caminho absoluto para seu diretório de dados. eclipse.jdt.ls armazena informações específicas do espaço de trabalho nele. Deve ser exclusivo por espaço de trabalho/projeto. Se você deseja depurar o próprio eclipse.jdt.ls, adicione -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
logo após java
e certifique-se de que nada mais esteja sendo executado na porta 1044. Se você quiser depure desde o início da execução, altere suspend=n
para suspend=y
para que a JVM aguarde seu depurador antes de iniciar o servidor.
Há também um script wrapper Python disponível que torna a inicialização do eclipse.jdt.ls mais conveniente (não há necessidade de fazer malabarismos com opções Java, etc.). Um exemplo de uso é descrito abaixo. O script requer Python 3.9.
./org.eclipse.jdt.ls.product/target/repository/bin/jdtls
-configuration ~ /.cache/jdtls
-data /path/to/data
Todas as opções Java mostradas serão definidas pelo script wrapper. Por favor, observe que as opções -configuration
apontam para a pasta de um usuário para garantir que a pasta de configuração em org.eclipse.jdt.ls.product/target/repository/config_*
permaneça intacta.
Veja Contribuindo
O servidor da linguagem Java suporta soquetes, pipes nomeados e fluxos padrão do processo do servidor para se comunicar com o cliente. O cliente pode comunicar seus métodos de conexão preferidos configurando variáveis de ambiente ou, alternativamente, usando propriedades do sistema (por exemplo, -DCLIENT_PORT=...
)
Para usar um soquete simples , defina as seguintes variáveis de ambiente ou propriedades do sistema antes de iniciar o servidor:
CLIENT_PORT
: a porta do soquete para conectarCLIENT_HOST
: o nome do host ao qual se conectar. Se não for definido, o padrão é localhost
.A conexão será usada para entrada e saída.
Para usar fluxos padrão (stdin, stdout) do processo do servidor, não defina nenhuma das variáveis de ambiente acima e o servidor retornará aos fluxos padrão.
Para soquetes e pipes nomeados, espera-se que o cliente crie as conexões e aguarde a conexão do servidor.
Este repositório contém apenas a implementação do servidor. Aqui estão alguns clientes conhecidos que consomem este servidor:
Nosso servidor CI publica os binários do servidor em http://download.eclipse.org/jdtls/snapshots/.
Os repositórios P2 estão disponíveis em http://download.eclipse.org/jdtls/snapshots/repository/.
As compilações Milestone estão disponíveis em http://download.eclipse.org/jdtls/milestones/.
EPL 2.0, consulte arquivo de LICENÇA.