2010-06-04 43 views
5

Tôi dường như không thể tìm ra cách để khởi chạy Clojure REPL với thư viện contrib đi kèm. Nếu tôi hiểu tài liệu chính xác thì lệnh này nên thực hiện:Làm thế nào để cài đặt clojure-contrib trên Windows?

C:\clojure-1.1.0>"%ProgramFiles%\Java\jre6\bin\java.exe" -cp clojure.jar:clojure 
-contrib.jar clojure.main 
Exception in thread "main" java.lang.NoClassDefFoundError: clojure/main 
Caused by: java.lang.ClassNotFoundException: clojure.main 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
Could not find the main class: clojure.main. Program will exit. 

Nhưng như bạn có thể thấy, nó không thành công. Tôi đã sao chép clojure-contrib.jar vào thư mục C:\clojure-1.1.0.

Ai đó có thể giúp tôi làm đúng không?

Cập nhật
Nhờ bài Michał của tôi nhận thấy rằng lỗi của tôi đã sử dụng một thư ruột kết, nơi tôi đã phải sử dụng một dấu chấm phẩy. Đây hoạt động:

C:\clojure-1.1.0>"%ProgramFiles%\Java\jre6\bin\java.exe" -cp clojure.jar;clojure-contrib.jar clojure.main 
Clojure 1.1.0 
user=> 

Trả lời

7

(trả lời được cập nhật để làm cho giải pháp thực tế rõ ràng, trong khi nó đã phần nào ẩn trong bản gốc ...)

Chuỗi classpath trên Windows sử dụng ; như tách. Ví dụ.

java.exe -cp "C:\clojure-1.1.0\clojure.jar;C:\clojure-1.1.0\clojure-contrib.jar" clojure.main 

Ngoài ra, bạn có thể sử dụng một ký tự đại diện để bao gồm tất cả các lọ trong thư mục được đưa ra trong classpath (đó là một JDK 1.6 Ngoài ra, sẽ không làm việc với 1.5):

java.exe -cp "C:\clojure-1.1.0\*" clojure.main 

(Tôi nghĩ rằng sử dụng dấu ngoặc kép ở đây là ok trong Windows, không thể kiểm tra mặc dù ...)

+0

Cảm ơn! Nó không thực sự là con đường đầy đủ, tôi chỉ đơn giản là phải sử dụng một dấu chấm phẩy thay vì dấu hai chấm như dấu phân tách cho các tệp jar! Aarg .. – StackedCrooked

+0

Hah! Tốt mà bạn nhận thấy nó - Tôi đã nhận thấy sự khác biệt trong các dấu phân cách và thậm chí gấp đôi kiểm tra các tài liệu trên đó, sau đó cho một số lý do unfathomable bỏ qua đề cập đến nó một cách rõ ràng trong câu trả lời. Chưa kể, tôi cũng không nhận thấy dấu nhắc 'C: \ clojure-1.1.0>' trong câu hỏi ... Tất cả đều tốt, tôi đoán vậy. :-) Tôi đã thực hiện chỉnh sửa ngay bây giờ vì lợi ích của người đọc trong tương lai. –

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