每当我启动一个新的REPL时,我总会得到相同的信息,即
#<FileNotFoundException java.io.FileNotFoundException: Could not locate test_app/core_init.class or test_app/core.cljon classpath:>
我一直使用的命名空间是ns test-app.core
REPL仍然继续出现,我可以用它来执行代码。我只是不确定这是否会导致未来的问题,例如尝试与incanter或其他图书馆合作。
答案 0 :(得分:3)
您的project.clj
是否包含以下一行?
...
:main test-app.core
...
在向您展示REPL之前,Leiningen将尝试切换到该命名空间。如果找不到,您将看到您提到的错误。现在,找不到它的原因是另一个需要探索的主题,所以首先要确保这是你的目录结构的样子:
.
|-- project.clj
|-- src
|-- test_app
|-- core.clj
如果确实如此,我想是时候发布Leiningen和Java版本(理想情况下是你的project.clj
)让SO试图解决这个神奇的REPL。 :)
修改:此问题的解决方案是 - 如果上述任何建议符合您的情况 - 当然要从项目文件中删除:main
行或调整目录结构。
答案 1 :(得分:1)
项目结构中名为core.clj
的文件夹中需要有test_app
个文件。
基本上,文件名应该适用于您在ns
表单中声明的任何内容。
正如Clojure Documentation FAQ所说,
为了在程序中使用Java类或Clojure命名空间, 该类或命名空间必须是&#34;在类路径上,&#34;也就是说,在里面 类路径中列出的目录或JAR文件。