Я начинаю с clojure, только начинаю вчера.
Я понял, что простой способ создать автономное приложение - с leiningen lein new foo
.
Я попытался создать приветственный мировой тестовый проект с leiningen. Я добавил: main и: aot директивы для project.clj, добавил: gen-class в файл core.clj и попробовал lein run
, но я получаю ошибки в определении класса, которые не найдены.
Exception in thread "main" java.lang.NoClassDefFoundError:
Caused by: java.lang.ClassNotFoundException:
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Файл core.clj
(ns test.core
(:gen-class))
(defn -main [& args] (println "Hello main"))
И файл project.clj
(defproject test "1.0.0-SNAPSHOT"
:description "FIXME: write description"
:main test.core
:aot [test.core]
:dependencies [[org.clojure/clojure "1.2.1"]])
Изменить: после дальнейшего тестирования кажется, что копирование проекта на мой рабочий стол работает так, как есть, что, я думаю, указывает на то, что среда на моем ноутбуке каким-то образом сворачивается, но я не знаю, как это сделать.
Среда на рабочем столе clojure из репозиториев и leiningen из AUR. На ноутбуке clojure находится от clojure.org, а leining - от github.