我正在尝试使用其他jar文件中的函数。
创建本地jar文件
我从Programming Clojure 2nd Ed这本书中下载了示例源代码,并使用lein 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