3

在过去的 6 个月里,我一直从 repl 运行我的 Clojure 应用程序。

即,每当我想运行应用程序时,我都会加载一个 clojure repl,然后输入: (load-file "src/run.clj") ... 它会运行我的应用程序。

然后,clojure 加载我所有的 *.clj 文件,编译它们并运行。

我最近切换到 Lein。我想“提前编译/打包”我的代码,这样我就可以获得一个带有 Main 方法的 jar,并通过“java ...”直接在命令行上运行它,而不必加载一个clojure/lein repl。

我很清楚我需要做一些 RTFMing。但是,如果有人可以为我指出一个好的教程,那将不胜感激。

谢谢!

4

1 回答 1

6

lein 官方教程中也有一个不错的教程。我只是将这些信息包括在内,以防我们将来出现任何死链接。

:main1)您首先需要通过添加到 project.clj来指定主命名空间

(defproject yourproject "0.1"
   :dependencies [[org.clojure/clojure "1.4.0"]]
   :main yourproject.core)

2)在您指定的主命名空间中,您必须添加(:gen-class),并且您必须通过使用指定主功能(defn -main ...)

(ns yourproject.core
  (:gen-class))

(defn -main [& args]
  (println "This is your crazy project!"))

3)运行uberjar创建独立的jar

lein uberjar

4)运行你的程序java -jar

java -jar yourproject.jar
于 2012-04-20T10:09:07.330 回答