与Leiningen一起部署Clojure应用程序

到目前为止,这是我的project.clj文件:

(defproject raj "0.0.1-SNAPSHOT" :description "FIXME: write description" :dependencies [[org.clojure/clojure "1.3.0"]] :keep-non-project-classes true :main raj.core) 

还有我的core.clj文件:

 (ns raj.core (:use raj.core)) (defn -main [& args] (println "Hello World!!!")) 

lein run -m raj.core显示Hello World消息就好了。 接下来我尝试lein uberjar并得到

 Compiling raj.core Compilation succeeded. Created C:\Users\bobjones\IdeaProjects\raj/raj-0.0.1-SNAPSHOT.jar Including raj-0.0.1-SNAPSHOT.jar Including clojure-1.3.0.jar Created C:\Users\bobjones\IdeaProjects\raj/raj-0.0.1-SNAPSHOT-standalone.jar 

到目前为止一切似乎都很顺利,所以我尝试了java -jar raj-0.0.1-SNAPSHOT-standalone.jar ,我收到了

 Error: Could not find or load main class raj.core 

我在这会做错什么?

您需要在raj.core命名空间中添加:gen-class声明:

 (ns raj.core (:use raj.core) (:gen-class))