打开REPL时出现问题

时间:2014-03-24 13:46:14

标签: clojure read-eval-print-loop incanter

每当我启动一个新的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或其他图书馆合作。

2 个答案:

答案 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文件。