2010-07-30 36 views
9

tôi đã tạo ra tập tin "hello.clj"Làm thế nào để biên dịch tập tin trong clojure

 
(ns clojure.examples.hello 
    (:gen-class)) 

(defn -main 
    [greetee] 
    (println (str "Hello " greetee "!"))) 

và thử biên dịch

 
clojurec hello.clj 

Nhưng tôi đã nhận lỗi này

 
Exception in thread "main" java.io.FileNotFoundException: Could not locate hello/clj__init.class or hello/clj.clj on classpath: 
    at clojure.lang.RT.load(RT.java:398) 
    at clojure.lang.RT.load(RT.java:367) 
    at clojure.core$load__5058$fn__5061.invoke(core.clj:3734) 
    at clojure.core$load__5058.doInvoke(core.clj:3733) 
    at clojure.lang.RestFn.invoke(RestFn.java:413) 
    at clojure.core$load_one__5010.invoke(core.clj:3578) 
    at clojure.core$compile__5065$fn__5067.invoke(core.clj:3744) 
    at clojure.core$compile__5065.invoke(core.clj:3743) 
    at clojure.lang.Var.invoke(Var.java:346) 
    at clojure.lang.Compile.main(Compile.java:56) 

tôi hãy thử thêm vào tệp này và chạy clojore hello.clj

 
(compile 'clojure.examples.hello) 

Nhưng gặp lỗi tương tự.

+0

Chỉ vì tò mò, 'clojurec' là gì ...? Bạn đã có được nó từ đâu? Tôi thực sự khuyên bạn nên Leiningen, mặc dù (xem câu trả lời của tôi để biết chi tiết). Nó được sử dụng rất rộng rãi trong cộng đồng Clojure và bạn sẽ không gặp vấn đề gì khi nhận được hỗ trợ khi sử dụng nó. –

+0

Trình biên dịch clojure chuẩn trên hệ thống Linux, kịch bản lệnh shell của nó với lệnh gọi: exec java -cp /usr/share/java/clojure.jar:"$dest_dir$extra_clas nói "-Dclojure.compile.path =" $ dest_dir "clojure .lang.Compile "$ @" – jcubic

Trả lời

6

Không gian tên được gọi là clojure.examples.hello cần phải nằm trong tệp có tên hello.clj trong thư mục $CPDIR/clojure/examples, trong đó $CPDIR là thư mục được bao gồm trong đường dẫn lớp của JVM.

Nói chung, cố gắng đặt đường dẫn lớp và đưa ra lệnh biên dịch bằng tay rất ít ý nghĩa. Sử dụng Leiningen thay thế; README có một lời giải thích khá kỹ lưỡng về những gì bạn sẽ cần phải làm.

Các vấn đề liên quan