(compile 'hoge.fuga)でコンパイルできない
Programming Clojureを読みながらclojureの勉強中である。
(compile 'hoge.fuga)
を実行すると、ClassNotFoundException例外が発生した。
コンパイルしたいcljソースファイルと、コンパイルされたクラス出力ディレクトリはclasspathを通さないと駄目だった。
ソース格納ディレクトリ c:\home\workspace\clj_src
(この下にhoge\fuga.cljを作成)
クラス出力ディレクトリ c:\home\workspace\classes
とすると、先日のclj.batは以下のように修正する。
@echo off set OPT_DIR=c:\home\opt set CLOJURE_DIR=%OPT_DIR%\clojure set CLOJURE_JAR=%CLOJURE_DIR%\clojure.jar set CLOJURE_CONTRIB_JAR=%OPT_DIR%\clojure-contrib\clojure-contrib.jar set JLINE_JAR=%OPT_DIR%\jline-0.9.94\jline-0.9.94.jar rem .clj格納ディレクトリ set CLJ_SRC_DIR=c:\home\workspace\clj_src rem クラス出力ディレクトリ set CLJ_CLASS_DIR=c:\home\workspace\classes IF (%1)==() ( java -cp %JLINE_JAR%;%CLOJURE_JAR%;%CLOJURE_CONTRIB_JAR%;%CLJ_SRC_DIR%;%CLJ_CLASS_DIR% jline.ConsoleRunner clojure.main ) ELSE ( java -cp %CLOJURE_JAR%;%CLOJURE_CONTRIB_JAR%;%CLJ_SRC_DIR%;%CLJ_CLASS_DIR% clojure.main %1 -- %* )
.emacsのslimeの設定も同様に、修正する。
(setq swank-clojure-jar-path "~/opt/clojure/clojure.jar" swank-clojure-extra-classpaths (list "~/opt/swank-clojure/src/main/clojure" "~/opt/clojure-contrib/clojure-contrib.jar" "~/workspace/clj_src" "~/workspace/classes"))
なお、コンパイルしたクラスファイルの出力先は *compile-path* に設定されている。