如何在clojure中创建可执行文件?
我一直在使用clojure Box在REPL环境中学习clojure 如何生成可执行文件(.jar) 我想知道这样的事情是否可能:如何在clojure中创建可执行文件?,clojure,Clojure,我一直在使用clojure Box在REPL环境中学习clojure 如何生成可执行文件(.jar) 我想知道这样的事情是否可能: 在记事本上编写clojure代码,并将其命名为project.clj 编译project.clj 获取可执行文件 步骤2不必在命令行中完成。IDE很好。使用Leiningen创建。: 我想我会为那些希望保留Java根的人提到 正如二汉·巴格德米尔所回答的,你应该使用莱宁根。以下是我在Windows上的操作方法: 在Windows上安装Leiningen 您将下载Le
我想我会为那些希望保留Java根的人提到 正如二汉·巴格德米尔所回答的,你应该使用莱宁根。以下是我在Windows上的操作方法: 在Windows上安装Leiningen 您将下载Leiningen脚本并将其放在
路径的某个位置。如果路径上已有用于可执行脚本的文件夹,如果没有,请执行以下操作:
下载
将其解压缩到主文件夹中(例如/Users/vikbehal
)
将通过解压缩创建的文件夹添加到您的路径
。要执行此操作,请打开控制面板,然后转到系统区域,在那里可以编辑环境变量。编辑系统或用户的路径
值,方法是将/Users/vikbehal/lein
(或任何文件夹名称)添加到路径
,确保用分号(;
)将该条目与其他条目隔开
按Ok
保存更改
通过打开命令提示符并运行lein help
,您可以验证是否已成功安装Leiningen。您应该看到Leiningen安装了一些初始文件。如果出现错误,请确保已将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)
声明
在项目.clj中添加:main my.main.namespace
条目
现在运行leinuberjar
。在开发过程中,如果您想测试应用程序作为可执行jar的行为,但又不想在每次更改时都显式地重新jar,您也可以使用lein run
。除了Leiningen,还有其他选择吗?@Da9 maven和clojure插件,。您能为Windows操作系统提供建议吗?还有一个Windows发行版:C:\Documents and Settings\x0163093>lein Leiningen是Clojure的构建工具。有几个任务可用:加载leiningen.classpath时出现问题-home dir不存在线程“main”java.lang.NoClassDefFoundError中的异常:无法在clojure.lang.Compiler.eval(Compiler.java:5440)上初始化类leiningen.classpath_uuuuinit(无源文件:0)。信息良好。我得回去再试一次。上次我试过Leiningen,那是一次相当惨淡的失败。:-)应该像在路径上粘贴lein
脚本一样简单。第一次使用lein
命令时,它将自动下载运行所需的所有内容。