[英]Could not locate apply /clojure/core/vector__init.class or apply/clojure/core/vector.clj on classpath
[英]Exception running clojure-1.9.0.jar: missing clojure/spec/alpha__init.class and clojure/spec/alpha.clj
Leiningen 下載了clojure-1.9.0.jar
作為依賴項。 它位於~/.m2/repository/org/clojure/clojure/1.9.0
。 它通過 lein repl 工作正常。
但是,如果(從~/.m2/repository/org/clojure/clojure
我運行java -jar 1.9.0/clojure-1.9.0.jar
,而不是預期的行為(REPL 的啟動),我得到一個異常:
Could not locate clojure/spec/alpha__init.class or clojure/spec/alpha.clj on classpath.
對於其他 Clojure 版本(1.8.0、1.6.0、1.4.0),我按預期獲得了 REPL。
那么 clojure-1.9.0.jar - - 或者我的設置 - 或者我的理解有什么問題?
注意:
如果我在包含具有 Clojure 1.9.0 依賴項的項目的目錄中運行lein repl
,我將獲得 Clojure 1.9.0 的 REPL,但如果我從任何其他目錄啟動 Leiningen,我將獲得 Clojure 1.8.0 的 REPL。 在這兩種情況下,REPL 版本都是REPL-y 0.3.7, nREPL 0.2.12
。 運行lein upgrade
導致消息Leiningen is already up-to-date.
Clojure 1.9.0 是模塊化的,規范支持被分解為兩個獨立的 JAR,它們必須在您的類路徑中。
見https://clojure.org/news/2017/12/08/clojure19
正如 Alex Miller 指出的那樣,新的clj工具會自動為您處理這個問題。
這些類已被拆分,您可以在此處下載缺少的 jar:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.