当前位置: 首页 > 知识库问答 >
问题:

Clojure/Lein/包装到罐子

鲍向笛
2023-03-14

在过去的6个月里,我一直在从repl运行我的Clojure应用程序。

也就是说,每当我想运行应用程序时,我都会加载一个clojure repl,然后输入:(加载文件“src/run.clj”)。。。它运行我的应用程序。

然后,clojure加载了我所有的*。clj文件,编译并运行。

我最近换了莱恩。我想“提前编译/打包”我的代码,这样我就可以得到一个带有Main方法的jar,并通过“java…”直接在命令行上运行它而不必加载clojure/lein repl。

我很清楚,我需要做一些RTFMing。然而,如果有人能给我指出一个好的教程,我将不胜感激。

谢谢!

共有1个答案

鲁涵意
2023-03-14

在官方的lein教程中也有一个不错的教程。我只是把这些信息包括在内,以防我们将来会有任何死链接。

1)您首先需要通过添加: main来指定主命名空间project.clj

(defproject yourproject "0.1"
   :dependencies [[org.clojure/clojure "1.4.0"]]
   :main yourproject.core)

2)在您指定的主命名空间中,您必须添加(: gen-class),并且您必须使用(desn-main...)指定主函数

(ns yourproject.core
  (:gen-class))

(defn -main [& args]
  (println "This is your crazy project!"))

3)运行uberjar创建独立的jar

lein uberjar

4) 使用java-jar运行程序

java -jar yourproject.jar

 类似资料:
  • 任何建议都会有帮助的!谢了!

  • 我在Java 8应用程序中使用了处理,它在IntelliJ上运行良好。Gradle导出所有平台的fat jar(下面的代码)打包依赖项后出现问题: 每当我试图打开扩展PApplet的窗口时,它都会引发以下异常: 通用域名格式。约甘普。opengl。GLException:配置文件[GL4bc、GL4、GL3bc、GL3、GLS3、GL2、GLS2]在设备窗口GraphicsDevice[type.

  • 问题内容: 我正在尝试创建包装另一个jar的OSGi服务。我将jar添加到项目,类路径和二进制构建中。我在Activator中注册了该服务,但是当消费包调用该服务时,我在包装jar上得到了java.lang.NoClassDefFoundError。有人知道我在做什么错吗? 提前致谢。 问题答案: 您是否正在导出使用者所需的软件包以及实施所需的所有软件包。消费者将需要导入将被引用的所有内容。 附带

  • 这个问题很简单,但是我花了两天时间尝试部署我的应用程序。到目前为止还没有。 我的样式只有一个css文件,当我执行jar时,找不到css(404)或者jar不会打包。 如这里所述:Spring Boot可执行jar结构“如果您的应用程序将被打包为jar,请不要使用src/main/webapp文件夹”和“您应该将静态资源放在src/main/resources中” 所以把css放在这里:src/ma

  • 我制作了自己的包装类,我希望那些使用我编译的JAR文件的人都能使用这些包装类。 这个jar文件还包含一个lib文件夹,它还有bouncy castle库,因为包装器的目的是让调用者更容易。现在我的库(名为mylibrary.jar)已经构建完成。 现在,当我将这个jar作为库包含在另一个项目中时,我看到以下错误 线程“AWT-EventQueue-0”java.lang.NoClassDefoun

  • 在运行Java8和Gradle6.3的Linux机器上,我需要构建一个由库混合而成的fat jar,一些库来自Maven Central,其他库来自位于存储库根部的本地目录,以及我的和: 运行和之后,如果我可以看到JAR中没有包含任何依赖项。 我的最终目标是使我的项目可执行为。我该怎么解决这个?