为什么我无法在Clojure中加载文件?

时间:2018-10-18 17:21:59

标签: clojure classpath leiningen read-eval-print-loop

我刚刚开始学习Clojure,但是很难理解为什么我的文件结构错误。在主文件(main.clj)中, 我只有这个:

(ns example.core
    (:gen-class)
    (:load "declare"))

...some code...

,在“ declare.clj”中,它在完全相同的类路径“ project / src”中,我有这个:

(in-ns 'example.core)
...some code...'

据我了解,我应该选择正确的语法,但我只会收到

  

找不到   clojurepractice2 / src / clojurepractice2 / declarations__init.class或   classpath上的clojurepractice2 / src / clojurepractice2 / declarations.clj。

来自REPL。我正在使用lein进行编码,我知道它应该自动设置类路径。有什么我想念的吗?
我尝试使用load-file获得相同的结果。

2 个答案:

答案 0 :(得分:0)

main.clj应该具有名称空间example.main。或将其重命名为core.clj。这绝对是文件名和名称空间不匹配的问题。

答案 1 :(得分:0)

因为文件名应与名称空间名称相同。 如果文件位于 src/example/main.clj 中,则名称空间应为 example.main 。 用法是

(ns example.main
    (:gen-class)
    (:load "declare"))

文件路径是否为 src / example / main.clj main中的example foldersrc中吗?