2024 年 Clojure 状态调查! 中分享您的看法。

欢迎!请访问 关于 页面,了解更多关于这个网站的信息。

0
错误

我正在尝试使用一个库,该库调用了 requiring-resolve(任何尝试调用时都会抛出 IllegalStateException)。在尝试找出问题的时候,我发现当调用

System.out.println(Clojure.var("clojure.core/deref").invoke(Clojure.var("clojure.core/*clojure-version*")));

Unbound: #'clojure.core/*clojure-version*

有没有办法修复这个问题?

1 答案

+1

听起来像是在您的 Java 代码路径中未见初始化 Clojure 本身。这也解释了尝试使用 `requiring-resolve` 时产生的 `IllegalStateException`,您会发现从尝试引用任何内容时都会出现这个错误。

由于不知道您的 Java 程序是如何构建的,很难确定可能的原因。

查看这个小的存储库可能会有帮助: https://github.com/stuarthalloway/clojure-from-java

我能否保证Clojure在路径上被初始化?我正在使用Clojure Java API,并使用maven管理我的包。
您能够在您的系统上运行Stu的示例仓库吗?如果可以,您能找出您的设置与该示例有何不同吗?

否则,您需要提供更多有关您的代码/构建过程等信息。

注意:为了编译所有内容,我不得不将以下属性添加到Stu仓库中的pom.xml文件中(因为默认情况下似乎是Java 1.6)

  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
...