运行Clojure程序

Bel*_*lun 20 packaging clojure

说我在clojure中创建一个程序,我必须将它传递给客户端.客户端确实有一些计算机知识,但他不知道/想要启动repl,加载我的程序,然后运行它.他想双击exe文件或运行shell脚本

我如何打包我的程序并交付(程序本身与clojure罐)?

G__*_*G__ 21

你有几个选择:

  • 将程序编译为Java类,并给出一个main方法.将它们打包成可执行的jar.
  • 除此之外,如果你使用Leiningen,那么你可以很好地组装所有东西lein uberjar,确保你已经宣布了一个主类.
  • 您可以将项目打包到一个不可执行的jar(没有主类)中,并创建一个shell脚本/批处理文件来执行正确的类,例如 java -cp ./clojure.jar:./myprogram.jar com.my.runthis.class
  • 只需将.clj文件打包到jar中,然后使用shell/batch脚本启动repl,然后自动发出命令,例如 java -cp ./clojure.jar:./myprogram.jar clojure.main -e "(in-ns 'your-ns)(start-your-program)" -r


Ham*_*aya 8

最简单的方法是让leiningen为你处理jar,它会将所有东西都包装成一个胖胖的jar,就像任何其他java应用程序一样.所有客户要做的就是双击它.如果你需要一个.exe文件,launch4j可以为你创建它,它也可以处理JRE安装,因为它尚未安装在客户端机器上.你不需要任何bash脚本等.


Ale*_*Ott 6

您可以使用leiningen创建uberjar,正如Greg Harman写的那样......我个人使用maven创建具有所有依赖关系的独立jar,声明主类 - 这简化了使用'java -jar your-jar-file'命令运行它.我还使用Izpack为我的程序创建安装程序