超级初学者问题。我跟随(好)书 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,它可能是类路径或我的编辑器。
答案 0 :(得分:0)
我刚刚发现,并且认为我会与大家分享答案。
它与代码无关,但是我的编辑器的REPL。 Lein的REPL没问题,因为我可以运行lein run
和lein repl
并看到提示符被设置为命名空间snake.core=>
,而在SublimeText的SublimeREPL的REPL中它被设置为user.core=>
。我只需关闭它,打开project.clj
文件,然后从这里打开一个带有SublimeREPL的Clojure REPL。它现在已正确设置为snake.core=>
,不会再出现错误。
回到编码!