你这个截图不完整,后面还会返回一串 json。
除了直接运行 jdtls
之外,还可以试试完整命令(命令因人不同,以 (insert (string-join (lsp-java--ls-command) " "))
导出为准):
java -Declipse.application=org.eclipse.jdt.ls.core.id1 \
-Dosgi.bundles.defaultStartLevel=4 \
-Declipse.product=org.eclipse.jdt.ls.core.product \
-Dlog.protocol=true \
-Dlog.level=ALL \
-XX:+UseParallelGC \
-XX:GCTimeRatio=4 \
-XX:AdaptiveSizePolicyWeight=90 \
-Dsun.zip.disableMemoryMapping=true \
-Xmx1G \
-Xms100m \
-jar $HOME/.jdtls/plugins/org.eclipse.equinox.launcher_1.6.500.v20230717-2134.jar \
-configuration $HOME/.jdtls/config_mac \
-data $HOME/.emacs.d/29.1/workspace/ \
--add-modules=ALL-SYSTEM \
--add-opens java.base/java.util=ALL-UNNAMED \
--add-opens java.base/java.lang=ALL-UNNAMED
Content-Length: 126
{"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"Sep 14, 2023, 1:04:36 PM Main thread is waiting"}}
这个返回表示 jdtls 正在等待接入。
重启提示是 lsp-mode
发出的,有可能真的 jdtls 退出了,有可能 jdtls 还在运行,但是 lsp-mode
连不上。