与Leiningen一起部署Clojure应用程序

wro*_*ame 16 java clojure leiningen

到目前为止,这是我的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)
Run Code Online (Sandbox Code Playgroud)

还有我的core.clj文件:

(ns raj.core
  (:use raj.core))

(defn -main [& args]
  (println "Hello World!!!"))
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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

Error: Could not find or load main class raj.core
Run Code Online (Sandbox Code Playgroud)

我在这会做错什么?

mty*_*aka 28

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

(ns raj.core
  (:use raj.core)
  (:gen-class))
Run Code Online (Sandbox Code Playgroud)