0

超级初学者问题在这里。我正在关注(好)书Programming Clojure,第 5 章是关于编写一个小型 Snake 游戏的。提供了实用程序代码,我决定按照它开始一个新的Leiningen项目 ( lein new app snake)。在我的src/snake/core.clj我想要一个由作者编写:use的文件。import_static.clj我将文件复制到src/snake中,并src/snake/core.clj从示例中复制了导入行(:use snake.import-static)。但是当我在 REPL 中评估整个文件时,我遇到了这个错误:“FileNotFoundException 无法在类路径上找到 import_static__init.class 或 import_static.clj”。

project.clj在文件和编辑器的 REPL(SublimeText + 插件 SublimeREPL)中都使用 Clojure 1.5.1 。目录结构:

src/
  snake/
    core.clj
    import_static.clj

顶部core.clj

(ns snake.core
    (:import (java.awt Color Dimension)
       (javax.swing JPanel JFrame Timer JOptionPane)
           (java.awt.event ActionListener KeyListener))
  (:gen-class)
  (:use snake.import-static))

顶部import_static.clj

(ns ^{:author "Stuart Sierra",
      :doc "Import static Java methods/fields into Clojure"}
  snake.import-static
  (:use clojure.set))

我尝试snake:use调用和命名空间声明中删除,但没有成功。你能帮助我吗 ?请注意,我不了解 JVM,它可能是类路径或我的编辑器。

4

1 回答 1

0

我刚刚发现,并认为我会与大家分享答案。

它与代码无关,而是我的编辑器的 REPL。Lein 的 REPL 没问题,因为我可以运行lein runlein repl看到提示设置为 namespace snake.core=>,而在 SublimeText 的 SublimeREPL 的 REPL 中它被设置为user.core=>. 我只需要关闭它,打开project.clj文件,然后从这里打开一个带有 SublimeREPL 的 Clojure REPL。现在已正确设置为snake.core=>,不再出现错误。

回到编码!

于 2013-12-01T14:33:36.983 回答