- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是 this question 的后续.
运行“lein jar”后,我得到“myproject-1.0.0-SNAPSHOT.jar”,其中不包含 clojure-1.2.0-beta1.jar 和 clojure-contrib-1.2.0-beta1.jar。
运行 'lein uberjar' 会给我两个 jar 文件。第一个(以 -standalone.jar 结尾)是包含所有内容的 jar,第二个与使用“lein jar”生成的 jar 相同。
这是第二个 jar 的问题。运行第一个 jar 没有问题,正如我在前面 post 中解释的那样.
当我跑
java -cp PATH_TO_THE_CLOJURE_AND_CONTRIB.jar:$CLASSPATH -jar myproject-1.0.0-SNAPSHOT.jar'
,我收到以下错误。
引起:java.lang.ClassNotFoundException:clojure.lang.IFn
在 java.net.URLClassLoader$1.run(URLClassLoader.java:202)
在 java.security.AccessController.doPrivileged(Native Method)
在 java.net.URLClassLoader.findClass(URLClassLoader.java:190)
在 java.lang.ClassLoader.loadClass(ClassLoader.java:307)
在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
在 java.lang.ClassLoader.loadClass(ClassLoader.java:248)
可能有什么问题,如果我使用 -cp 选项指向 jar 文件,我想我可以以与“myproject-1.0.0-SNAPSHOT-standalone.jar”相同的方式使用“myproject-1.0.0-SNAPSHOT.jar”。
还有什么我必须做的吗?
添加
java -cp ALLTHE_JAR_PATH myproject.core
解决了这个问题。
最佳答案
如果您使用的是 Leiningen 1.2,您可能会遇到一个错误,即在创建 uberjar 之前会删除依赖项(显然违背了 uberjar 的观点)。请降级到 1.1 并等待新版本(应该很快就会发布)或使用 lein 的 HEAD 结帐(如 lein 的 README 中关于入侵 Leiningen 的部分所述)。
一旦你这样做了,你应该能够用 lein uberjar
生成一个独立的 jar。然后说 java -jar name-of-your-standalone.jar
启动您的应用程序。
作为替代方案,您可以使用 lein jar
创建一个普通的 jar。并说类似 java -cp '$PROJECT_ROOT/lib/*:your-app.jar' your-app.main
(其中 your-app.main
是您的应用程序的主类;当然,也可以用适当的路径替换 $PROJECT_ROOT
并提供到 your-app.jar
的路径)。 lib/*
东西只适用于 JDK 1.6;使用 1.5,您必须分别包含每个 jar。 注意使用 -jar
时, -cp
和 $CLASSPATH
被忽略;仅考虑 jar list (如果有)中指定的类路径。
关于clojure - 如何运行由 'lein jar' 命令制作的 jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3400665/
现在,当我运行 lein 时,它倾向于: (1) 杀死 lib/* 然后 (2) 重新安装/下载各种库到lib/ 现在,这是一个问题,因为我倾向于将我需要的 *.jars 复制到 lib/中,但随后
我跑了lein uberjar在我的项目上,它创建了相应的 jar 文件。当我运行 jar ClassNotFoundException: explodingdots.core被抛出。我指定了 exp
lein figwheel 和 lein cljsbuild auto 有什么区别,因为我相信它们都是用来编译 clojurescript 的。 使用一个比另一个有什么好处吗? 最佳答案 格威尔 它们
在我看来,lein run 和 lein Tampoline 之间的唯一区别是后者退出 Leiningen 的 JVM 以节省内存。 这似乎总是一个好主意,那么为什么这个功能不包含在lein run中
我正在尝试实现我正在使用的遗留运行时所需的 Java 接口(interface),并实例化此实现的实例以将其传递给运行时。但是当我运行 lein uberjar我看到一个异常,找不到该类。两个命名空间
我想从我的 lein repl 控制一些 lein-plugins(lein-cljs build、lein-aws、lein-beanstalk)。有没有办法做到这一点? 例如,我希望能够调用 插件
我正在制作一个部署在 Heroku 上的 Clojure/ClojureScript 网站。我正在使用 Leiningen 进行项目管理。 我想用 LESS 编写我的样式表。我需要构建过程将 LESS
新手 Clojure 和 leiningen 问题: 鉴于我下面项目中的代码片段,这适用于 lein repl : ==> (-main "something") 产生预期的“命令:某事......正
当前的问题是,当我使用 lein run 运行程序时,它会到达 (read-line) 部分,而我无法摆脱它,意思是:读取行永远不会返回。 相关代码如下: (def command (atom "")
在基于解放者的clojure项目中,我们使用datomic作为DB。将本地开发数据库迁移到S3托管的数据库并在项目上添加所需的依赖关系之后,我们无法启动REPL,但Liberator堆栈通过lein
假设我找到了一个很酷的 clojure 库,例如 https://github.com/clojurewerkz/buffy 现在我想使用它。而且它只存在于 github 上。 我该怎么做?我希望有一
我刚刚开始使用 lein 开始我的第一个 clojure 项目,代码如下: (ns fileops.core (:use [clojure.core :only (slurp)]
我一直在做的一个项目在使用 leiningen interactive 时突然开始抛出异常。运行“lein test”没问题,我的测试运行并通过了。异常仅在使用交互式时发生: Exception in
我有一个hello.clj如下。 (ns hello) (defn hi [] (println "HI")) 通常,我可以按如下方式使用main.clj中的此功能。 hello.clj位于包含mai
我想编写一个 shell 脚本来启动 lein repl,然后在保持 repl 运行的同时提供一些命令。 例如,我可能想做相当于: lein repl (dev) (setup) 我可以通过 echo
我一直在尝试设置 Clojure 以使用泛音。 但是,当我尝试在项目文件夹中启动 Lein 时收到此消息: Exception in thread "main" java.lang.Exception
我正在使用“lein uberjar”为我的项目制作一个可执行的 jar 文件。 jar 已正确创建并按预期运行。 我只想知道是否可以不将我的源 .clj 文件包含在生成的 .jar 中,因为我打算分
我是莱宁根的新手。 当我尝试执行以下操作时, $ lein clean jar 我有 Wrong number of arguments to clean task. Expected [] $ 如何
我想配置 Lein 以便我看到一个彩色的 REPL,就像 Emacs 的 nREPL。我怎样才能做到这一点? 我在谷歌上找不到任何帮助。我需要先学习 Bash 脚本吗? 最佳答案 Ultra ,“用于
我在OS X 10.10.5和Ubuntu 16.04上都运行Sublime Text 3 Build 3117。我刚刚在两者上都安装了Leiningen 2.6.1,然后开始在SublimeREPL
我是一名优秀的程序员,十分优秀!