クラスパスの指定
あんまりJavaとか使ったことなかったので、Clojureでクラスパスを指定するところで詰まってしまった。Clojureの公式サイトでは、起動コマンドは
$ java -cp clojure.jar clojure.main
とのことなので、cpオプションのところに使いたいライブラリのパスを指定していけばいいらしい。例えば、clojure-contribとプログラミングClojureのサンプルコード(https://github.com/stuarthalloway/programming-clojure)を読み込むには以下のような起動スクリプトを書く。
#!/bin/sh CLOJURE_DIR=$HOME/.clojure CLOJURE_JAR=$CLOJURE_DIR/clojure.jar CONTRIB_JAR=$CLOJURE_DIR/clojure-contrib.jar PROGRAMMING_CLOJURE_DIR=$CLOJURE_DIR/programming-clojure CLASSPATH=$CLASSPATH:$CLOJURE_JAR:$CONTRIB_JAR:$PROGRAMMING_CLOJURE_DIR java -cp $CLASSPATH clojure.main
Clojureを起動して次のコードを打ち込むことで確認できる。
user=> (use 'clojure.contrib.classpath) nil user=> (classpath) (#<File > #<File /home/masatoi/.clojure/clojure.jar> #<File /home/masatoi/.clojure/clojure-contrib.jar> #<File /home/masatoi/.clojure/programming-clojure>)
swank-clojureでクラスパスを指定する方法はSLIMEでClojureを使うに追記しました。