Clojure:如何从jar运行我的主程序?

Kon*_*rus 13 clojure

我把我的Clojure应用程序装在一个罐子里.我发布它:

java -cp lib/clojure-1.2.0.jar:my-app.jar clojure.main -e "(use 'foo.main)(-main)"
Run Code Online (Sandbox Code Playgroud)

这是从这个jar启动我的应用程序的唯一方法吗?具体来说,我希望看到一些简单的事情:

java -cp lib/clojure-1.2.0.jar:my-app.jar clojure.main foo.main
Run Code Online (Sandbox Code Playgroud)

Jür*_*zel 14

使用

(ns foo.main
  (:gen-class)
Run Code Online (Sandbox Code Playgroud)

在您的主源中生成命名空间包限定类文件.加

:main foo.main
:manifest {"Class-Path" "lib/clojure-1.2.0.jar"}
Run Code Online (Sandbox Code Playgroud)

到您的Leiningen项目文件.在"lein jar"之后,您可以使用JAR嵌入的Manifest文件中的元数据启动应用程序:

java -jar foo-YOURVERSION.jar
Run Code Online (Sandbox Code Playgroud)


Ham*_*aya 5

如果您使用leiningens uberjar任务打包应用程序,则只需运行,

java -jar name-of-your-app.jar
Run Code Online (Sandbox Code Playgroud)