Проблема с компиляцией в Clojure
-
03-07-2019 - |
Вопрос
Я безуспешно пытался скомпилировать очень простой test.clj в Clojure.у меня есть нить на Группа Google по Clojure с несколькими ответами, но ничего не помогло.Подводя итог, вот мой файл 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)что заставляет меня поверить, что это проблема пути к классам.Я попробовал запустить 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, так что может быть возможно Это может быть проблема с разрешениями, но я проверил разрешения и не нашел в них ничего плохого.
Решение
Консольный вывод для компиляции 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=>
Сгенерированные файлы классов находятся в каталоге классов.
Также обратите внимание, что вам не хватает правой скобки в вашем основной.Исправленная версия:
(ns test.test
(:gen-class))
(defn -main
[gre]
(println (str "Hello " gre)))
Другие советы
C:\clojrue\java -cp .\src;.\classes;clojure.jar
-Dclojure.compile.path=classes clojure.lang.Compile test.test