[英]Clojure lein uberjar: java.lang.ClassNotFoundException
[英]lein ring uberjar — java.lang.NoClassDefFoundError: clojure/lang/Var
不確定為什么當我lein with-profile +live ring uberjar
然后java -jar
我的uberjar時,我得到了這個異常: 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"]]}})
有任何想法嗎?
當您運行lein uberjar
時, Leiningen 會生成兩個.jar
文件 。 文件名以...-standalone.jar
結尾的那個是實際的uberjar,其中包含Clojure(核心)。 可以使用java -jar my_uberjar.jar
簡單地運行獨立文件。 如果你運行另一個(非超級jar),那么Clojure需要在類路徑中可用。
您可以使用jar tf my_uberjar.jar
查看每個jar文件中包含的依賴jar tf my_uberjar.jar
。 uberjar應該包含clojure/core/...
, clojure/lang/...
等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.