作者:bianbianxiong | 来源:互联网 | 2023-01-16 08:23
我最近 - 就像今天一样 - 开始对学习用clojure编程感兴趣.现在安装了最新版本的java jdk并下载了leiningen脚本后,我按照后者的安装说明进行了操作,特别是在以下网址给出的安装说明:http:/www.lispcast.com/clojure-ubuntu.
现在,在运行lein version
并下载相关的jar文件之后,程序退出并显示有关未找到类的错误.有问题的错误如下:
java.base/java.lang.Class.forName0(本地方法)中的线程"main"java.lang.ExceptionInInitializerError 中的异常,
位于java.base/java.lang.Class.forName(Class.java:375)>
at 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.core
$ load $ fn__5677.invoke(core.clj:5893)
的clojure.lang.RT.load (RT.java:419)clojure.core $ load.invokeStatic(core. clj:5892)
位于clojure.core__
上的clojure.core__init.load(未知来源)的clojure.core $ load.doInvoke(core.clj:5876)
中的clojure.lang.RestFn.invoke(RestFn.java:408)
.(来自
java.base/java.lang.Class.forName0(本机方法)
的java.base/java.lang.Class.forName(Class.java:375)
的clojure.lang.RT.classForName(RT.java) :
2178)
位于clojure.lang.RT.classForName(RT.java:2177)的clojure.lang.RT.loadClassForName(RT.java:2196)
位于clojure.lang.RT.load(RT.java:443)
的clojure
clojure.lang上的.lang.RT.load(RT.java:419).RT.doInit(RT.java:461)
位于clojure.R的.(RT.java:331)
.(main.java:20)
引起:java.lang.ClassNotFoundException:java/sql/
位于java.base/java.lang.Class.forName(Class.java:375)的
java.base/java.lang.Class.forName0(本机方法)的时间戳,
位于clojure.lang.RT.classForName(RT.java:2168) )
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个
我的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.如果我遗漏了一些明显的东西,我会道歉,但是有理由认为只有在证明是这样的情况下,某些事情才会显而易见.
任何和所有建议将不胜感激.
1> amalloy..:
这看起来像Java 9的新模块"模块"引起的问题:Clojure希望能够访问java.sql.Timestamp,但它不能.我没有跟上Java开发或Clojure开发的步伐,所以我不能确定这是你的问题,但它看起来对我来说.尝试使用早期的JDK.