我是Clojure的初学者,昨天才开始接触。
我了解到使用Leiningen lein new foo
是创建独立应用程序的简单方法。
我试图使用Leiningen创建一个hello world测试项目。我在project.clj中添加了:main和:aot指令,在core.clj文件中添加了:gen-class,并尝试运行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和AUR的leiningen。 在笔记本电脑上,clojure来自clojure.org,而leiningen来自github。