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를 빌드한 경우 ./org.eclipse.jdt.ls.product/target/repository
로 cd
. 마일스톤 또는 스냅샷 빌드를 다운로드한 경우 콘텐츠를 추출하세요.
활성 터미널에서 서버를 시작하려면 아래에 자세히 설명된 대로 다음 명령을 조정하고 실행합니다.
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이 서버를 시작하기 전에 디버거를 기다리도록 합니다.
eclipse.jdt.ls 시작을 더욱 편리하게 해주는 Python 래퍼 스크립트도 있습니다(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, LICENSE 파일을 참조하세요.