我最近 - 和今天一样 - 开始对学习clojure编程感兴趣。现在安装了最新版本的jdk并下载了leiningen脚本后,我按照后者的安装说明进行了操作,具体如下:http:/www.lispcast.com/clojure-ubuntu。
现在,在运行lein version并下载相关的jar文件之后,该程序将退出,并显示关于未找到类的错误。有问题的错误如下:
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:375)>
at clojure.lang.RT.classForName(RT.java:2168)
at clojure.lang.RT.classForName(RT.java:2177)
at clojure.lang.RT.loadClassForName(RT.java:2196)
at clojure.lang.RT.load(RT.java:443)
at clojure.lang.RT.load(RT.java:419)
at clojure.core$load$fn__5677.invoke(core.clj:5893)
at clojure.core$load.invokeStatic(core.clj:5892)
at clojure.core$load.doInvoke(core.clj:5876)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core__init.load(Unknown Source)
at clojure.core__init.(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:375)
at clojure.lang.RT.classForName(RT.java:2168)
at clojure.lang.RT.classForName(RT.java:2177)
at clojure.lang.RT.loadClassForName(RT.java:2196)
at clojure.lang.RT.load(RT.java:443)
at clojure.lang.RT.load(RT.java:419)
at clojure.lang.RT.doInit(RT.java:461)
at clojure.lang.RT.(RT.java:331)
at clojure.main.(main.java:20)
Caused by: java.lang.ClassNotFoundException: java/sql/Timestamp
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:375)
at clojure.lang.RT.classForName(RT.java:2168)
at clojure.lang.RT.classForNameNonLoading(RT.java:2181)
at clojure.instant$loading__5569__auto____6869.invoke(instant.clj:9)
at clojure.instant__init.load(Unknown Source)
at clojure.instant__init.(Unknown Source)
... 23 more
我的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,但这也无济于事。
顺便说一句,整个问题起源于我试图运行REPL
在安装cursive插件之后intellij,这不起作用。然后我猜测这可能是因为我之前没有安装leiningen(我认为IDE和草书会将它捆绑在一起)。然而,关于什么intellij和clojure成功运行的实际信息已经没有了,因为大部分信息都是“分散的”,我不确定我是否错过了某些东西。
在任何情况下,我都很难让所有的东西都能正常工作 - 可能是因为我对这类问题还不是很了解,只是在Linux发行版上一段时间以及对clojure完全不熟悉。如果我错过了一些显而易见的东西,我表示歉意,但有理由认为,一旦事实如此显而易见,事情就会显而易见。
任何和所有的建议将不胜感激。