我正在关注“Programming Clojure”一书中的例子,而且我在页面上 17运行(要求'example.introduction)。
我在〜/ bin / clojure中设置了clojure,如下所示
java -server \ -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888 -cp ... clojure.lang.Repl
-cp包含。 (当前目录)。当我尝试使用clojure时,我收到以下错误消息。
Exception in thread "main" java.lang.ExceptionInInitializerError at clojure.lang.Repl.(Repl.java:23) Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodError: clojure.lang.MultiFn.(Ljava/lang/String;Lclojure/lang/IFn;Ljava/lang/Object;Lclojure/lang/IRef;)V (utils.clj:0) at clojure.lang.RT.(RT.java:290) ... 1 more Caused by: java.lang.NoSuchMethodError: clojure.lang.MultiFn.(Ljava/lang/String;Lclojure/lang/IFn;Ljava/lang/Object;Lclojure/lang/IRef;)V (utils.clj:0) at clojure.lang.Compiler.eval(Compiler.java:4153) at clojure.lang.Compiler.load(Compiler.java:4470) at clojure.lang.RT.loadResourceScript(RT.java:327) at clojure.lang.RT.loadResourceScript(RT.java:316) at clojure.lang.RT.load(RT.java:406) at clojure.lang.RT.load(RT.java:376) at clojure.core$load__4557$fn__4559.invoke(core.clj:3427) at clojure.core$load__4557.doInvoke(core.clj:3426) at clojure.lang.RestFn.invoke(RestFn.java:413) at clojure.core$load_one__4520.invoke(core.clj:3271) ... at clojure.lang.RT.loadResourceScript(RT.java:327) at clojure.lang.RT.loadResourceScript(RT.java:312) at clojure.lang.RT.maybeLoadResourceScript(RT.java:308) at clojure.lang.RT.doInit(RT.java:430) at clojure.lang.RT.(RT.java:286) ... 1 more Caused by: java.lang.NoSuchMethodError: clojure.lang.MultiFn.(Ljava/lang/String;Lclojure/lang/IFn;Ljava/lang/Object;Lclojure/lang/IRef;)V at clojure.contrib.duck_streams__init.load(Unknown Source) at clojure.contrib.duck_streams__init.(Unknown Source) ... at clojure.lang.Compiler.eval(Compiler.java:4142) ... 28 more
我尝试按如下方式运行clojure。
alias clojure='java -jar $JARDIR/clojure.jar '
但是当我按照以下方式运行the command时,它没有正确设置.bashrc中的CLASSPATH。
(println (seq (.getURLs (java.lang.ClassLoader/getSystemClassLoader))))
可能出现什么问题?
答案 0 :(得分:2)
最简单的方法是使用本书附带的Stuart Halloway代码:
$ git clone http://github.com/stuarthalloway/programming-clojure.git
cd
到已创建的programming-clojure
目录:$ cd programming-clojure
repl.sh
目录中的bin/
脚本:$ ./bin/repl.sh
(确保从repo root运行它,而不是bin/
目录,否则它不会工作)。该脚本将设置所有必要的路径,包括书中示例的路径。
(当然,您可以手动执行此操作,但无论如何,您必须下载或克隆programming-clojure
源代码才能使示例正常工作。)