emacs 使用lsp-java 下载不了jdtls 服务

hi, 各位emacs 道友们好? 最近我在用 lsp-java 来coding java代码,当要下载jdtls 服务时一直下载不了,无奈看了一下lsp-java.el 代码。其中有句代码是:(defvar lsp-java–download-root “https://raw.githubusercontent.com/emacs-lsp/lsp-java/master/install/”) 。这会在运行lsp-install-server的时候,从这里下载,不管在linux 和 mac 上都会超时,使用vpn也解决不了问题,把上面的网址用浏览器访问也无法访问,请问各位是怎么解决的?

到这里下载

我也折腾了好久,最后是自己下载自己build的

https://github.com/eclipse/eclipse.jdt.ls

我下载下了是 jdt-language-server-latest.tar.gz 这个文件,emacs 该如何使用呢?

感觉好复杂啊,emacs 如何导入使用呢?

可以用环境变量设置下代理:

MAVEN_OPTS="-DsocksProxyHost=yourProxyIP -DsocksProxyPort=yourProxyPort"

这样就可以顺利下载了

把这个文件进行解压,放到一个你喜欢的位置,假设这个位置是 ~/.emacs

配置 lsp-java-server-install-dir 这个变量

(setq lsp-java-server-install-dir
        "~/.emacs/jdt-language-server-latest/")

对了,记得保证这个变量在 lsp 启动前配置好

个人的配置,仅供参考

(use-package lsp-java
  :defer t
  :init
  (setq lsp-java-server-install-dir
        "~/backups/src/jdt-language-server-latest/")
  :hook (java-mode . (lambda ()
                       (require 'lsp-java)
                       (lsp-common-set))))
(defun lsp-common-set ()
  (use-package lsp-ui
    :config
    (setq lsp-ui-doc-enable nil)
    (setq lsp-ui-sideline-enable nil)
    (define-key lsp-ui-mode-map [remap xref-find-references]
      #'lsp-ui-peek-find-references))
  (lsp)
  (setq-local company-backends
              '((company-yasnippet company-capf)
                company-dabbrev-code company-dabbrev
                company-files))
  (setq lsp-completion-styles '(basic))
  (define-key lsp-mode-map (kbd "S-<f2>") #'lsp-rename)
  (define-key lsp-mode-map (kbd "M-.") #'xref-find-definitions)
  (define-key lsp-mode-map (kbd "C-h .") #'lsp-describe-thing-at-point)
  (define-key lsp-mode-map (kbd "s-l") nil)
  (setq abbrev-mode nil))
1 个赞

弄好了,谢谢哈!

这种方法最好,下次可以很容易手动更新。

hi, 你好,问一下你有没有用 dap-mode 做 java 的 debugger 呢?配制是什么样的啊,贴出来学习一个。我这边一直显示 No delegateCommandHandle for vscode.java.resolveMainClass? 这坑真是一年接一下!或者把你的配制发出来,我学习一下哦!

我没有用 dap-mode,这个现在怎么样?成熟了吗?

现在我看很多人都在用呢?你用的是哪个做 jdb 还是 gdb 做调试的啊?分享一下看看呗。

额,真的没配啊,java 的话我只是用 emacs来写一些小程序,调试我都是用的 Eclipse。

我 Emacs 主要用途是用来写 C, 汇编,Scheme,Common lisp,org 之类的。

这里主要是我 Emacs 中编程相关的所有配置 https://github.com/zerolee/.emacs.d/blob/master/Configurations/programs.el

好的谢谢啊!写的也有值得我学习的地方啊

客气了,能帮到你就好。

我搭了个nginx,有需要的可以拿去用。。。

http://1.117.167.195/download/jdt-language-server-1.6.0-202111261512.tar.gz

大佬们 ,你们在使用lsp-java 的时候有啥方式提升性能的吗? 自动提示,还有 dapmode 的时候感觉都很慢 有啥方式可以优化一下的吗?

可以将maven 替换为mvnd试试,还有就是换M1 mac试试记得下载arm架构的jdk

我调过几次配置,感觉目前这版的补全体验还能接受。

  1. 根据lsp-mode performance进行优化
  2. 调整了company-minimum-prefix-length, 3的体验好一些,不然在我这边会很卡。
(setq-local company-idle-delay 0.2)
(setq-local company-minimum-prefix-length 3)

目前仅在比较小的spring boot项目试过,体验还可以。

可以参考下我的配置

你们在使用 通过 go-to-implements 进入编译的代码的时候 乱码吗? 有没有解决的?