我很高興使用swank-clojure,通過elpa安裝。但我想用deftype,defprotocol等做一些工作,而這些工作並不是在clojure 1.1中不可用的。我可以在clojure 1.2 master分支中使用swank-clojure嗎?
要使用我自己的類路徑中,我使用的stackoverflow question about setting custom classpaths,這是由裏克·莫伊尼漢的優秀建議,成立一個類似的腳本:
#!/bin/bash
java -server -cp "./lib/*":./src clojure.main -e "(do (require 'swank.swank) (swank.swank/start-repl))"
這工作順順當當如果Clojure的jar文件在LIB是1.1,但1.2,它炸燬:
Exception in thread "main" java.lang.NoSuchMethodError: clojure.lang.RestFn.<init>(I)V (macroexpand.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:5274)
at clojure.lang.Compiler.load(Compiler.java:5663)
at clojure.lang.RT.loadResourceScript(RT.java:330)
at clojure.lang.RT.loadResourceScript(RT.java:321)
at clojure.lang.RT.load(RT.java:399)
at clojure.lang.RT.load(RT.java:371)
at clojure.core$load__5663$fn__5671.invoke(core.clj:4255)
at clojure.core$load__5663.doInvoke(core.clj:4254)
at clojure.lang.RestFn.invoke(RestFn.java:409)
...and many, many more
那麼,有一些神奇的咒語,使這項工作,或者是Clojure的1.2兼容性還沒有實現?
這裏還好。你有沒有測試過這個空項目? (一個Clojure和swank的'lib /'目錄,最多是src /'目錄下的一個命名空間的骨架)。另外,如果事情實際上是你的項目和/或swank設置的問題,它可能是有用的看到整個堆棧跟蹤... – 2010-04-08 01:12:29
@MichałMarczyk:謝謝,這幫助我解決問題。 – 2010-04-08 02:15:52