使用本地jar文件与emacs clojure/cider模式和REPL



我正在尝试使用其他jar文件中的函数。

创建本地jar文件

我从Programming Clojure 2nd Ed这本书中下载了示例源代码,并使用lein jar命令创建了一个jar文件。

使用本地jar文件从这篇文章的提示中,我复制了lib/目录下的jar文件,然后我可以添加项目中的:resource-paths ["lib/programming-clojure-1.3.0.jar"]

在REPL中测试

使用lein classpath命令,我可以检查jar文件是否在类路径中。对于lein repl,我可以使用jar文件中的函数。

mire=> (require '[examples.introduction :as e])
nil
mire=> (take 10 examples.introduction/fibs)
(0 1 1 2 3 5 8 13 21 34)

使用emacs/cider的问题

我在src/目录中创建了一个t.clj源代码,用emacs src/t.clj &启动了emacs,用M-x cider-jack-in启动了REPL。

我编写了这段代码,并使用C-x C-e执行。

(ns t(:require '[examples/introduction:as ex]))

然而,我得到一个消息,文件没有找到。

java.io.FileNotFoundException: Could not locate introduction__init.class or introduction.clj on    

类路径:

怎么了?

命名空间为examples.introduction。此外,您不需要在ns宏中引用向量。试一试:

(ns t (:require [examples.introduction :as ex]))

查看ns宏的一些使用示例。

此外,通常在名称空间中至少有两个段。例如:mynamespace.t

最新更新