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

这似乎表明 Clojure 在经过您的 Java 代码的路径上还没有被初始化。这也解释了尝试使用 requiring-resolve 时出现的 IllegalStateException--您将看到从任何尝试引用的内容都会出现这个错误。

不知道更多关于您如何构建 Java 程序的信息,很难说出可能的原因。

查看这个小型仓库可能会有所帮助:https://github.com/stuarthalloway/clojure-from-java

我有什么方法可以确保 Clojure 在路径上被初始化?我使用 Clojure Java API,并且我的包由 Maven 管理。
by
编辑 by
你能在你的系统上使Stu的例子仓库工作吗?如果能,你能弄清楚你的设置和那个例子之间可能有什么不同吗?

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

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

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