为什么我的Clojure导入失败?

del*_*ber 3 clojure clojure-contrib

我在IntelliJ中使用contrib 1.1运行Clojure 1.3.我的程序由一行组成

(use 'clojure.contrib.prxml)
Run Code Online (Sandbox Code Playgroud)

运行时出现以下错误

Exception in thread "main" java.lang.RuntimeException: java.lang.NoSuchMethodError: clojure.lang.RestFn.<init>(I)V
Run Code Online (Sandbox Code Playgroud)

ama*_*loy 6

我正在使用contrib 1.1运行Clojure 1.3

这是你的问题.Clojure和contrib版本相互链接,并且不同版本兼容.

更进一步,从1.3开始,contrib已被分解为许多较小的库,因此实际上没有可以与1.3一起使用的"单片贡献"版本.


edw*_*att 5

除了回答说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.1clojure-contrib 1.2.0.