1

每当我启动一个新的 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 或其他库。

4

2 回答 2

3

您是否project.clj包含以下行,是否有机会?

...
:main test-app.core
...

在向您展示 REPL 之前,Leiningen 将尝试切换到该名称空间。如果找不到它,您将看到您提到的错误。现在,它找不到它的原因是另一个需要探索的话题,所以首先确保你的目录结构是这样的:

.
|-- project.clj
|-- src
    |-- test_app
        |-- core.clj

如果是这样,我想是时候发布 Leiningen 和 Java 版本(最好是你的project.clj),让 SO 尝试解决这个神奇的 REPL。:)

编辑:这个问题的解决方案将 - 如果上述任何建议符合您的情况 - 当然是:main从项目文件中删除该行或调整目录结构。

于 2014-03-24T21:35:33.173 回答
1

项目结构中core.clj命名的文件夹中需要有一个文件。test_app

基本上,文件名应该将命名应用于您在ns表单中声明的​​任何内容。

正如Clojure 文档常见问题解答所说,

为了在程序中使用 Java 类或 Clojure 命名空间,该类或命名空间必须在“类路径上”,即在类路径中列出的目录或 JAR 文件中。

于 2014-03-24T13:48:48.640 回答