我在 IntelliJ 中运行带有 contrib 1.1 的 Clojure 1.3。我的程序由一行组成
(use 'clojure.contrib.prxml)
运行时出现以下错误
Exception in thread "main" java.lang.RuntimeException: java.lang.NoSuchMethodError: clojure.lang.RestFn.<init>(I)V
我在 IntelliJ 中运行带有 contrib 1.1 的 Clojure 1.3。我的程序由一行组成
(use 'clojure.contrib.prxml)
运行时出现以下错误
Exception in thread "main" java.lang.RuntimeException: java.lang.NoSuchMethodError: clojure.lang.RestFn.<init>(I)V
我正在使用 contrib 1.1 运行 Clojure 1.3
有你的问题。Clojure 和 contrib 版本相互关联,并且跨版本不兼容。
更重要的是,从 1.3 开始,contrib 已被拆分为许多较小的库,因此实际上没有可以与 1.3 一起使用的“monolithic contrib”版本。
除了说 contrib 1.1 与 clojure 1.3 不兼容的答案
取自这里:
clojure-contrib 的版本与 Clojure 的版本相匹配。
如果您使用 Clojure 1.0,请使用 clojure-contrib 1.0。
如果您使用 Clojure 1.1,请使用 clojure-contrib 1.1。
如果您使用 Clojure 1.2,请使用 clojure-contrib 1.2 或新的模块化 Contrib库。
如果您使用 Clojure 1.3,请使用新的模块化 Contrib库。
截至本回复日期,我不确定是否有clojure.contrib.prxml
与之兼容的版本clojure-1.3
(如果我错了,请有人纠正我)。
所以我建议使用clojure-1.2.1
and clojure-contrib 1.2.0
。
调用 clojure 1.2 和 contrib 1.2 没有问题
如果您不需要任何特定于 1.3 的内容,我建议您暂时坚持使用 1.2,使用 clojure 1.2 和 contrib 1.2,直到 contrib 作者正确过渡到 1.3