簡體   English   中英

由於未找到 Java 類異常,leiningen 無法運行

[英]leiningen cannot run because of java class not found exception

我最近——就像今天一樣——對學習使用 clojure 編程產生了興趣。 現在,在安裝了最新版本的 java 的 jdk 並下載了 leiningen 腳本之后,我按照后者的安裝說明進行操作,特別是在以下位置給出的說明: http:/www.lispcast.com/clojure-ubuntu

現在,在運行lein version並下載相關 jar 文件后,程序退出並顯示未找到類的錯誤。 有問題的錯誤如下:

線程“main”中的異常 java.lang.ExceptionInInitializerError
在 java.base/java.lang.Class.forName0(Native Method)
在 java.base/java.lang.Class.forName(Class.java:375)>
在 clojure.lang.RT.classForName(RT.java:2168)
在 clojure.lang.RT.classForName(RT.java:2177)
在 clojure.lang.RT.loadClassForName(RT.java:2196)
在 clojure.lang.RT.load(RT.java:443)
在 clojure.lang.RT.load(RT.java:419)
在 clojure.core$load$fn__5677.invoke(core.clj:5893)
在 clojure.core$load.invokeStatic(core.clj:5892)
在 clojure.core$load.doInvoke(core.clj:5876)
在 clojure.lang.RestFn.invoke(RestFn.java:408)
在 clojure.core__init.load(未知來源)
在 clojure.core__init.(來源不明)
在 java.base/java.lang.Class.forName0(Native Method)
在 java.base/java.lang.Class.forName(Class.java:375)
在 clojure.lang.RT.classForName(RT.java:2168)
在 clojure.lang.RT.classForName(RT.java:2177)
在 clojure.lang.RT.loadClassForName(RT.java:2196)
在 clojure.lang.RT.load(RT.java:443)
在 clojure.lang.RT.load(RT.java:419)
在 clojure.lang.RT.doInit(RT.java:461)
在 clojure.lang.RT.(RT.java:331)
在 clojure.main.(main.java:20)
引起:java.lang.ClassNotFoundException:java/sql/Timestamp
在 java.base/java.lang.Class.forName0(Native Method)
在 java.base/java.lang.Class.forName(Class.java:375)
在 clojure.lang.RT.classForName(RT.java:2168)
在 clojure.lang.RT.classForNameNonLoading(RT.java:2181)
在 clojure.instant$loading__5569__auto____6869.invoke(instant.clj:9)
在 clojure.instant__init.load(未知來源)
在 clojure.instant__init.(來源不明)
……還有 23 個

我的 java 9 jdk 安裝在/usr/lib/jvm/java-9-oracle/bin/java ,我的JAVA_HOME變量設置為/usr/lib/jvm/java-9-oracle但我試過/usr/lib/jvm/java-9-oracle/bin也是如此,以防萬一。 我正在運行 xubuntu 16.04.3,如果這很重要的話。 我確實嘗試將默認的 java jdk 設置回與 xubuntu 捆綁在一起的 openjdk,但這也無濟於事。

順便說一句,整個問題源於我在安裝草書插件后嘗試在 intellij 中運行 REPL,但沒有奏效。 然后我推測這可能是因為我沒有事先安裝 leiningen(我認為 IDE 和草書會把它捆綁在一起)。 然而,關於 intellij 和 clojure 需要什么才能成功運行的實際信息讓我望而卻步,因為大部分信息相當“分散”,我不確定我是否在此過程中遺漏了什么。

無論如何,我很難讓一切正常工作——可能是因為我在處理這些問題時還不是那么精明,只在 Linux 發行版上工作過一段時間完全不熟悉clojure。 如果我遺漏了一些明顯的東西,我深表歉意,但有理由認為某些東西只有被證明是顯而易見的。

任何和所有建議將不勝感激。

這看起來像是由 Java 9 的“模塊”新概念引起的問題:Clojure 希望能夠訪問 java.sql.Timestamp,但它不能。 我沒有跟上 Java 開發或 Clojure 開發,所以我不能肯定這是你的問題,但在我看來是這樣的。 嘗試使用較早的 JDK。

如果你不能降級你的 JAVA 版本,運行 lein upgrade 2.8.1 或者最新的 Leiningen 就可以了。 Leiningen 已更新以包含對 Java 9 的支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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