繁体   English   中英

如何在Mac OS X上运行clojure?

[英]How to run clojure on Mac OS X?

我正在遵循“ Programming Clojure”一书中的示例,并且在第17页上运行(要求“ example.introduction”)。

我已经将clojure设置为〜/ bin / 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 '

但是,当我按以下方式运行命令时,它没有在.bashrc中正确设置的CLASSPATH。

(println (seq (.getURLs (java.lang.ClassLoader/getSystemClassLoader))))

可能有什么问题?

最简单的方法是使用本书随附的Stuart Halloway的代码:

  1. 从GitHub克隆Stu的代码: $ git clone http://github.com/stuarthalloway/programming-clojure.git
  2. cd进入创建的programming-clojure目录: $ cd programming-clojure
  3. bin/目录中运行repl.sh脚本: $ ./bin/repl.sh (确保您从repo根目录而不是bin/目录运行它,否则它将无法工作)。

该脚本将设置所有必要的路径,包括本书中示例的路径。

(当然,您可以手动进行操作,但是无论如何,您都必须下载或克隆programming-clojure源代码才能使示例正常工作。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM