我是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"]])
编辑:经过进一步的测试,似乎将项目复制到了我的桌面上,我认为这表明我笔记本电脑上的环境被以某种方式借用了,但我不知道是怎么回事。
桌面环境是repositories的clojure和AUR的leiningen。在笔记本电脑上,clojure来自clojure.org,leining来自github。
发布于 2011-08-01 22:09:46
我想通了。我从git买了最新的leiningen,不知何故,它被改写了。我检查了1.6.1标签并运行了self-install,现在它可以工作了。
发布于 2011-07-30 03:15:37
我错过了,你给你的项目命名为test,你不能这样做,把名字改成其他的就行了。
发布于 2011-07-30 02:36:05
你如上所说
lein new foo
你的意思是
lein new test
https://stackoverflow.com/questions/6874338
复制相似问题