使用Leiningen部署Clojure应用程序

16

这是我目前的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

我在这里可能做错了什么?

1个回答

28
你需要在raj.core命名空间中添加一个:gen-class声明:
(ns raj.core
  (:use raj.core)
  (:gen-class))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接