Clojure引入data.json库报ClassNotFoundException求助
解决Clojure data.json依赖安装失败的问题
你的问题根源在于deps.edn的格式错误——你把文件拆成了三个独立的Map结构,而Clojure的工具链要求整个deps.edn必须是单一的顶层Map,这直接导致data.json的依赖根本没被正确加载,从而抛出ClassNotFoundException。
正确的deps.edn写法
将你的deps.edn替换为以下内容:
{:paths ["src"] :deps {org.clojure/spec.alpha {:mvn/version "0.3.218"} org.clojure/test.check {:mvn/version "1.1.0"} org.clojure/data.json {:mvn/version "2.4.0"}}}
错误原因说明
你原来的文件里,三个:deps块各自作为独立的Map存在,Clojure只会读取第一个Map的配置,后面的两个依赖块会被完全忽略,所以data.json的依赖从未被加入到项目的类路径中。
后续操作步骤
- 保存修改后的
deps.edn - 关闭当前运行的REPL或终端进程,重新执行
clojure命令启动环境 - 在代码中引入JSON库即可正常使用:
(require '[clojure.data.json :as json])
另外注意:终端里不能直接输入{:deps {org.clojure/data.json {:mvn/version "2.4.0"}}}来添加依赖,临时加载依赖的正确命令是:
clojure -Sdeps '{:deps {org.clojure/data.json {:mvn/version "2.4.0"}}}'
但更推荐通过修改deps.edn来管理长期依赖。
内容的提问来源于stack exchange,提问作者SomeoneThatCodes
相关产品推荐
相关产品推荐

