2009-03-03 27 views
7

Tôi đã cố gắng để biên dịch một test.clj rất đơn giản trong Clojure mà không thành công. Tôi có một số thread trên số Clojure Google Group với một số câu trả lời nhưng không có gì hữu ích. Để tóm tắt nhanh, đây là tệp clojure của tôi:Vấn đề biên dịch trong Clojure

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

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

Về cơ bản, đó là tệp mẫu được cung cấp trong Clojure documentation.

Tôi đã đặt tệp này một cách thích hợp trong clojure/src/test/test.clj và có thể biên dịch với (compile 'test.test), nhưng tôi vẫn gặp lỗi:

java.io.IOException: The system cannot find the path specified (test.clj:1)
dẫn tôi tin rằng đó là sự cố classpath. Tôi đã thử chạy Clojure với tất cả các lệnh tiêu chuẩn được đưa ra trong Clojure documenation cũng như đề xuất mới nhất từ ​​chuỗi java -classpath .;src;classes;clojure.jar clojure.main.

Nếu nó giúp, hệ thống tập tin của tôi trông như thế này:

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

T.B. Tôi đang chạy trên Vista Ultimate vì vậy nó có thể có thể là một vấn đề quyền, nhưng tôi đã kiểm tra các điều khoản và không thể tìm thấy bất cứ điều gì sai trái với họ.

Trả lời

9

điều khiển đầu ra cho biên soạn test.clj trên Windows:

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

Các tập tin lớp được tạo ra trong thư mục lớp học.

Ngoài ra, lưu ý rằng bạn đang thiếu dấu ngoặc đơn bên phải trong chính chính của mình. phiên bản sửa chữa:

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

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

xuất sắc! Thank-yee rất nhiều, nó hoạt động như một sự quyến rũ! Ngoài ra, tôi sẽ chỉnh sửa câu hỏi bởi vì tôi gần như paren chỉ được cắt từ bản sao/dán tôi đã làm. – Mike

+0

HI Tôi nhận được cùng một vấn đề. Điều gì có thể sai? Tôi đã thử giải pháp của bạn: C: \ clojure> java -cp clojure-1.0.0.jar;. \ Src;. \ Classes clojure.lang.Repl user => (biên dịch 'test.test) java.io .IOException: Hệ thống không thể tìm thấy đường dẫn được chỉ định (test.clj: 1) – unj2

+1

Điều này có nghĩa là bạn không có các lớp/thư mục trong CLASSPATH của bạn. –

0
C:\clojrue\java -cp .\src;.\classes;clojure.jar 
    -Dclojure.compile.path=classes clojure.lang.Compile test.test 
Các vấn đề liên quan