2010-07-17 227 views
0

我正在關注「編程Clojure」一書中的示例,並且我在頁面 17上運行(需要'example.introduction)。如何在Mac OS X上運行clojure?

我在〜/斌/設置的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 ' 

但它不具備CLASSPATH我在安裝正確的.bashrc,當我運行the command如下。

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

什麼可能是錯誤的?

+1

爲所有,但最瑣碎的實驗,這是最好的習慣[Leiningen](http://leiningen.org)。當我開始時,我瞭解到這是艱難的方式。 – Mars 2015-08-18 03:06:04

回答

2

最簡單的方法是使用附帶的書斯圖爾特哈洛韋代碼:

  1. 從GitHub克隆斯圖代碼:$ git clone http://github.com/stuarthalloway/programming-clojure.git
  2. cd到所創建的programming-clojure目錄:$ cd programming-clojure
  3. 運行repl.sh腳本在bin/目錄中:$ ./bin/repl.sh(請確保您從回購根目錄運行它,而不是bin/目錄,否則它將不起作用)。

該腳本將設置所有必要的路徑,包括書中示例的路徑。

(你可以做手工,當然,但無論如何,你必須下載或反正克隆programming-clojure源代碼示例的工作。)