在过去的6个月里,我一直在从repl运行我的Clojure应用程序。
也就是说,每当我想运行应用程序时,我都会加载一个clojure repl,然后输入:(加载文件“src/run.clj”)。。。它运行我的应用程序。
然后,clojure加载了我所有的*。clj文件,编译并运行。
我最近换了莱恩。我想“提前编译/打包”我的代码,这样我就可以得到一个带有Main方法的jar,并通过“java…”直接在命令行上运行它而不必加载clojure/lein repl。
我很清楚,我需要做一些RTFMing。然而,如果有人能给我指出一个好的教程,我将不胜感激。
谢谢!
在官方的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中没有包含任何依赖项。 我的最终目标是使我的项目可执行为。我该怎么解决这个?