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

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

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

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

在Windows上安装Leiningen

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

>下载Leiningen package from Github.
>将其解压缩到您的主文件夹(例如/ Users / vikbehal)
>将通过解压缩创建的文件夹添加到PATH.为此,请打开“控制面板”,然后转到“系统”区域,您可以在其中编辑环境变量.通过将/ Users / vikbehal / lein(或任何文件夹被调用)添加到PATH来编辑系统或用户的PATH值,确保通过分号(;)将该条目与其他条目分开.
>按确定以保存更改.

您可以通过打开命令提示符并运行lein help来验证是否已成功安装Leiningen.您应该看到Leiningen安装一些初始文件.如果您收到错误,请确保已将Leiningen所在的文件夹正确添加到PATH中.

用Leiningen开发

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

这是Leiningen标准命令的破败:

# 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

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

配置可执行/独立Jar

你需要做三件事让lein uberjar正常工作:

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

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

转载注明原文:windows – 如何从clojure代码构建可执行jar?在一个程序中使用java的主要功能 - 代码日志