2009-03-03 64 views
7

我一直在试图在Clojure中编译一个非常简单的test.clj而没有任何成功。 Clojure Google Group我有thread有几个回应,但没有任何帮助。要快速总之,这里是我的Clojure文件:在Clojure中编译问题

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

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

基本上它是在Clojure documentation提供的示例文件。

我已将这个文件合适地放入clojure/src/test/test.clj,并且应该可以用(compile 'test.test)编译,但是我一直收到错误:

java.io.IOException: The system cannot find the path specified (test.clj:1)
,这导致我相信这是一个类路径问题。我试着用 Clojure documenation中给出的所有标准命令以及线程 java -classpath .;src;classes;clojure.jar clojure.main的最新建议来运行Clojure。

如果有帮助,我的文件系统是这样的:

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

附:我在Vista旗舰版上运行,所以它可能可能是一个权限问题,但我已检查权限,无法找到他们的任何错误。

回答

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=> 

生成的类文件位于classes目录下。

此外,请注意,您在主要中缺少右括号。修改后的版本:

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

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

外观极好!非常感谢,它就像一个魅力!另外,我要编辑这个问题,因为我刚刚从副本/粘贴中删除了这个关键字。 – Mike 2009-03-03 19:34:08

0
C:\clojrue\java -cp .\src;.\classes;clojure.jar 
    -Dclojure.compile.path=classes clojure.lang.Compile test.test