Проблема компиляции в Clojure - PullRequest
7 голосов
/ 03 марта 2009

Я пытался скомпилировать очень простой test.clj в Clojure без какого-либо успеха. У меня есть тема в Clojure Google Group с несколькими ответами, но ничего не помогло. Чтобы быстро подвести итог, вот мой файл clojure:

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

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

В основном это файл примера, представленный в документации Clojure .

Я поместил этот файл соответствующим образом в clojure/src/test/test.clj, и должен быть в состоянии скомпилировать с (compile 'test.test), но я продолжаю получать ошибку:

java.io.IOException: The system cannot find the path specified (test.clj:1)
, которая заставляет меня полагать, что это проблема classpath. Я попытался запустить Clojure со всеми стандартными командами, приведенными в документации Clojure , а также с последним предложением из потока java -classpath .;src;classes;clojure.jar clojure.main.

Если это поможет, моя файловая система выглядит так:

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

P.S. Я работаю на Vista Ultimate, поэтому возможно может быть проблемой с разрешениями, но я проверил разрешения и не смог найти в них ничего плохого.

Ответы [ 2 ]

9 голосов
/ 03 марта 2009

Консольный вывод для компиляции test.clj в 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=>

Сгенерированные файлы классов находятся в каталоге классов.

Также обратите внимание, что в вашем main отсутствует правильная скобка. Исправленная версия:

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

(defn -main
    [gre]
    (println (str "Hello " gre)))
0 голосов
/ 01 октября 2010
 C:\clojrue\java -cp .\src;.\classes;clojure.jar 
    -Dclojure.compile.path=classes clojure.lang.Compile test.test
...