如何从clojure代码构建可执行jar?在一个程序中使用java的主要功能

时间:2011-10-07 11:12:53

标签: windows jar clojure

如何从clojure代码构建可执行jar?

我希望它有一个main函数,以便 java -jar jarfile.jar 运行该程序。

3 个答案:

答案 0 :(得分:10)

正如Erhan Bagdemir回答的那样,你应该使用Leiningen。以下是我在Windows上的操作方法:

在Windows上安装Leiningen

您将下载Leiningen脚本并将其放在PATH上的某个位置。如果路径中已有用于可执行脚本的文件夹,则执行以下操作:

  1. 下载Leiningen package from Github
  2. 将其解压缩到您的主文件夹(例如/Users/vikbehal
  3. 将通过解压缩创建的文件夹添加到PATH。为此,请打开“控制面板”,然后转到“系统”区域,您可以在其中编辑环境变量。通过向PATH添加/Users/vikbehal/lein(或调用任何文件夹)来编辑系统或用户的PATH值,确保通过分号({分号)将该条目与其他条目分开({ {1}})。
  4. ;保存更改。
  5. 您可以通过打开命令提示符并运行Ok来验证是否已成功安装Leiningen。您应该看到Leiningen安装一些初始文件。如果您收到错误,请确保您已将Leiningen居住的文件夹正确添加到lein help

    使用Leiningen开发

    Leiningen为您提供了一个良好的默认目录结构,处理依赖关系管理,并确保在运行REPL时正确设置了Java的类路径,或者在这种情况下,会破坏您的应用程序。

    这是Leiningen标准命令的破败:

    PATH

    看起来最后一个命令就是你想要的,对吧?首先,您需要配置一些东西,以便Leiningen可以正确构建您的可执行jar。

    配置可执行文件/独立Jar

    您需要做三件事才能使# Start a blank project lein new my-project # Pull down dependencies defined in your project.clj file lein deps # Create a "library" jar of your project lein jar # Create an executable jar of your project lein uberjar 正常工作:

    1. 编写一个lein uberjar函数,它将作为执行jar文件的“入口点”。 (注意-main,它表示此函数更像是“Java方法”而不是常规的Clojure函数。)
    2. 确保在包含-函数的文件顶部的(:gen-class :main true)命名空间声明中添加ns声明。
    3. -main
    4. 中添加:main my.main.namespace条目

      现在运行project.clj。在开发时,如果要测试应用程序作为可执行jar的行为,可以使用lein uberjar,但不希望每次进行更改时都显式重新jar。

答案 1 :(得分:3)

答案 2 :(得分:2)

只是为了变化,我会为那些想要保持Java根源的人提及maven clojure plugin