我正在尝试从简单的clojure文件创建一个jar文件。下面是我的clojure代码:
(ns app.first (:gen-class))
(refer 'clojure.core)
(defn -main [& args] (println "this program worked!"))
我正在使用这些说明创建jar文件:http://en.wikibooks.org/wiki/Clojure_Programming/Tutorials_and_Tips
当我尝试完成(compile 'app.first)
步骤时,我看到错误“java.io.FileNotFoundException:无法在类路径上找到app / hello__init.class或app / hello.clj :( NO_SOURCE_FILE:0)”。
我的尝试和链接之间的唯一区别是我的文件名(first.clj而不是hello.clj)。
谁能看到我哪里出错了?或者就此而言,我想要做的就是学习如何从clojure文件创建一个jar,所以如果有人知道更好/更简单的方法,请告诉我。
答案 0 :(得分:2)
最好将Leiningen用于此类任务 - 它允许维护依赖关系,并将所有必要的组件打包到jar文件中
答案 1 :(得分:1)
我生气了,但我听说过其他有类似问题的人。
我认为记住您指定的类路径指向类树的根是有帮助的,并且包名最终会在该树中创建子目录。尴尬地说,但我希望你明白这个主意。因此,我认为你需要做一些一些类型的体操,创建目录以匹配“app.first” - > “/ app / first”层次结构。
对不起,这就像我得出一个明智而有用的答案一样接近。希望这会对你有所帮助。
编辑:
计算机科学的总理指令:它只适用于所有的权利!我花了近10分钟摆弄这个,但终于成功了。
这是我需要做的事情来编译你的程序:
app
,并使用您的代码创建了first.clj
。*compile-path*
检查(pr *compile-path)
。它说“课程”。classes
平行的第二个目录app
。export CLASSPATH=.:./classes
(compile 'app.first)
...我在classes
找到了一堆类文件。 JARring那些应该是快速的。
我发现运行(doc compile)
非常有帮助,因为这提醒我要求有一个目录来满足*compile-path*
的要求。