clojure - lein ring uberjar -- java.lang.NoClassDefFoundError : clojure/lang/Var

标签 clojure leiningen compojure ring compojure-api

不确定为什么当我 lein with-profile +live ring uberjar然后 java -jar我的 uberjar,我得到这个异常(exception):java.lang.NoClassDefFoundError: clojure/lang/Var .
project.clj :

(defproject gn-preview-api "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url  "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.9.0"]]
  :main gn-preview-api.www.app
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}
             :staging {:aot :all}
             :live    {:aot :all}
             :dev     {:plugins      [[lein-ring "0.9.7"]]
                       :dependencies [[javax.servlet/servlet-api "2.5"]]}})

有任何想法吗?

最佳答案

莱宁根 produces two .jar files when you run lein uberjar .文件名以 ...-standalone.jar 结尾的那个是实际的 uberjar,它包含 Clojure(核心)。独立文件可以简单地使用 java -jar my_uberjar.jar 运行.如果您运行另一个(非 uber jar),则 Clojure 需要在类路径中可用。

您可以使用 jar tf my_uberjar.jar 查看每个 jar 文件中包含哪些依赖项。 . uberjar 应该包含 clojure/core/... , clojure/lang/... , 等等。

关于clojure - lein ring uberjar -- java.lang.NoClassDefFoundError : clojure/lang/Var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51851596/

相关文章:

image - 如何使用跷跷板为面板背景设置图像?

java - Clojure 与 Java 的互操作 : how to call a class?

clojure - 使用 compojure.route/resources 和 ring.middleware.resource/wrap-resource

clojure - 如何在环项目中运行任意启动功能?

clojure - 无法在类路径中找到组合

clojure - 如何在 Clojure 中传递预定义的向量?

clojure - 语法引用宏参数?

swing - 如何加速落后的 Swing 扫雷板?

maven - Clojure/leiningen : Project suddenly broken! 什么会导致这个 maven 错误?

java - 将 native JNI 共享库与 Clojure 库捆绑在一起