簡體   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