Eclipse JDT Language Server คือการนำภาษา Java ไปใช้โดยเฉพาะของ Language Server Protocol และสามารถใช้กับเอดิเตอร์ใดๆ ที่สนับสนุนโปรโตคอล เพื่อให้การสนับสนุนที่ดีสำหรับภาษา 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 คุณสามารถติดตั้ง Extension Pack สำหรับ 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 หากคุณต้องการ debug from the start of execution, change suspend=n
to suspend=y
so the JVM will wait for your debugger prior to starting the server.
นอกจากนี้ยังมีสคริปต์ตัวตัดคำ 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
: the host name to connect to. หากไม่ได้ตั้งค่า จะมีค่าเริ่มต้นเป็น localhost
การเชื่อมต่อจะใช้สำหรับเข้าและส่งออก
หากต้องการใช้สตรีมมาตรฐาน (stdin, stdout) ของกระบวนการเซิร์ฟเวอร์ อย่าตั้งค่าตัวแปรสภาพแวดล้อมใด ๆ ข้างต้น และเซิร์ฟเวอร์จะถอยกลับไปเป็นสตรีมมาตรฐาน
สำหรับซ็อกเก็ตและไปป์ที่มีชื่อ ไคลเอ็นต์คาดว่าจะสร้างการเชื่อมต่อและรอให้เซิร์ฟเวอร์เชื่อมต่อ
พื้นที่เก็บข้อมูลนี้มีเพียงการใช้งานเซิร์ฟเวอร์เท่านั้น ต่อไปนี้เป็นไคลเอนต์ที่ทราบว่าใช้งานเซิร์ฟเวอร์นี้:
เซิร์ฟเวอร์ CI ของเราเผยแพร่ไบนารีของเซิร์ฟเวอร์ไปที่ http://download.eclipse.org/jdtls/snapshots/
ที่เก็บ P2 มีอยู่ภายใต้ http://download.eclipse.org/jdtls/snapshots/repository/
Milestone builds มีอยู่ภายใต้ http://download.eclipse.org/jdtls/milestones/
EPL 2.0 ดูที่ไฟล์ลิขสิทธิ์