Как установить clojure-contrib в Windows? - PullRequest
5 голосов
/ 04 июня 2010

Кажется, я не могу найти способ запустить Clojure REPL с включенной библиотекой contrib.Если я правильно понял документацию, то эта команда должна сделать это:

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.

Но, как вы можете видеть, она не работает.Я скопировал clojure-contrib.jar в папку C:\clojure-1.1.0.

Может ли кто-нибудь помочь мне сделать это правильно?

Обновление
Благодаря записи МихаилаЯ заметил, что моей ошибкой было использование двоеточия, где я должен был использовать точку с запятой.Это работает:

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

1 Ответ

7 голосов
/ 04 июня 2010

(Ответ обновлен, чтобы сделать фактическое решение явным, тогда как оно было несколько скрыто в оригинале ...)

Строка classpath в Windows использует ; в качестве разделителя. Э.Г.

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

В качестве альтернативы, вы можете использовать подстановочный знак для включения всех jar-файлов из заданного каталога в classpath (это дополнение JDK 1.6, не будет работать с 1.5):

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

думаю , используя двойные кавычки, это нормально для Windows, хотя проверять не могу ...)

...