如何解决CIDER中JDK源码无法查看的问题?
解决CIDER无法查看JDK源码的问题
我之前也碰到过一模一样的情况,结合你给出的环境(Emacs 26.3、CIDER 0.23.0、Amazon Corretto 11、macOS Mojave 10.14.6),可以试试下面这些步骤来搞定:
1. 先找到JDK源码包的位置
首先定位你的Corretto 11安装目录,macOS下默认路径一般是:/Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home
进入这个目录后,检查lib文件夹里有没有src.zip——这就是JDK的源码压缩包。如果没有的话,你需要重新下载带源码的完整版本Corretto 11,或者单独下载源码包放到这个lib目录里。
2. 把JDK源码添加到CIDER的classpath
有两种配置方式,选一种适合你的就行:
方式一:项目级配置(仅当前项目生效)
如果你用Leiningen管理项目,在project.clj的:dev profile里添加源码路径:
(defproject test "0.1.0-SNAPSHOT" ;; 其他配置... :profiles {:dev {:resource-paths ["/Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home/lib/src.zip"]}})
如果你用deps.edn,就在:dev配置的:paths里加上:
{:deps {org.clojure/clojure {:mvn/version "1.10.0"}} :dev {:paths ["/Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home/lib/src.zip"]}}
方式二:全局配置(所有项目生效)
打开你的Emacs配置文件(比如init.el或.emacs),添加以下配置:
(setq cider-jdk-src-paths '("/Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home/lib/src.zip"))
保存配置后重启Emacs,这个设置就会全局生效。
3. 验证配置是否生效
重启CIDER连接到你的项目后,运行M-x cider-classpath命令,查看输出里是否包含刚才添加的src.zip路径。
然后找一个Java方法测试,比如输入(java.util.ArrayList.),按下C-c C-d C-s(对应cider-view-source命令),如果配置成功,就能看到ArrayList的Java源码了。
额外小提示
- 如果还是看不到源码,先检查JDK安装是否完整——有些精简版JDK会省略
src.zip,重新安装完整版本就能解决。 - 要是遇到macOS权限问题导致无法读取系统目录里的
src.zip,可以把这个压缩包复制到你的项目目录下,再修改路径配置,不过全局配置显然更省心。
内容的提问来源于stack exchange,提问作者Harish
相关产品推荐
相关产品推荐

