7

我一直在尝试在 Clojure 中编译一个非常简单的 test.clj,但没有成功。我在Clojure Google Group上有一个帖子,上面有几个回复,但没有任何帮助。快速总结一下,这是我的 clojure 文件:

(ns test.test
    (:gen-class))

(defn -main
    [gre]
    (println (str "Hello " gre)))

基本上它是Clojure 文档中提供的示例文件。

我已将此文件适当地放在 中clojure/src/test/test.clj,并且应该能够使用 进行编译(compile 'test.test),但我不断收到错误消息:

java.io.IOException:系统找不到指定的路径(test.clj:1)
这让我相信这是一个类路径问题。我尝试使用Clojure 文档中给出的所有标准命令以及线程的最新建议来运行 Clojure java -classpath .;src;classes;clojure.jar clojure.main

如果有帮助,我的文件系统如下所示:

-+-clojure
 +-classes/
 +-+-src/
 | |-+-test/
 | | \-test.clj
 +-\-test.clj
 +-test.clj
 +-clojure.jar

PS 我在 Vista Ultimate 上运行,所以可能是权限问题,但我检查了权限,没有发现任何问题。

4

2 回答 2

9

在 Windows 上编译test.clj的控制台输出:

C:\clojure>dir /b/s
C:\clojure\classes
C:\clojure\src
C:\clojure\src\test
C:\clojure\src\test\test.clj

C:\clojure>java -cp c:\dev\clojure.jar;.\src;.\classes clojure.lang.ReplClojure
user=> (compile 'test.test)
test.test
user=>

生成的类文件在类目录中。

另外,请注意您在main中缺少右括号。修正版:

(ns test.test
    (:gen-class))

(defn -main
    [gre]
    (println (str "Hello " gre)))
于 2009-03-03T18:52:28.900 回答
0
 C:\clojrue\java -cp .\src;.\classes;clojure.jar 
    -Dclojure.compile.path=classes clojure.lang.Compile test.test
于 2010-10-01T09:51:06.250 回答