gpt4 book ai didi

java - leiningen 无法运行,因为 java class not found 异常

转载 作者:IT王子 更新时间:2023-10-29 00:50:58 28 4
gpt4 key购买 nike

我最近——就像今天一样——对学习使用 clojure 进行编程产生了兴趣。现在,在安装了最新版本的 java 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在 intellij 安装 cursive 插件后,它不起作用。然后我推测这可能是因为我没有事先安装 leiningen(我认为 IDE 和 cursive 会把它捆绑在一起)。然而,关于成功运行 intellij 和 clojure 需要什么的实际信息却让我望而却步,因为大部分信息相当“分散”,我不确定我是否错过了一些东西。

无论如何,我很难让所有东西都正常工作——可能是因为我对这类问题还不是很精通,我只接触过 linux 发行版一段时间以及完全不熟悉clojure。如果我遗漏了一些明显的东西,我深表歉意,但按理说,某些东西只有在被证明是显而易见的情况下才能变得明显。

我们将不胜感激任何和所有建议。

最佳答案

这看起来像是 Java 9 的“模块”新概念引起的问题:Clojure 期望能够访问 java.sql.Timestamp,但它不能。我没有跟上 Java 开发或 Clojure 开发的步伐,所以我不能肯定地说这是你的问题,但在我看来是这样。尝试使用较早的 JDK。

关于java - leiningen 无法运行,因为 java class not found 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46498861/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com