簡體   English   中英

運行 clojure-1.9.0.jar 的異常:缺少 clojure/spec/alpha__init.class 和 clojure/spec/alpha.clj

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM