我希望啓用用戶定義的Clojure腳本來與我的Java應用程序進行交互。問題是,我事先並不知道Clojure腳本的位置,所以在運行應用程序時,我不能將它們包含在我的類路徑中。如何從java的classpath之外動態加載Clojure腳本?
如何從我的類路徑之外動態加載Clojure腳本?
我已經試過了簡單的例子:
RT.loadResourceScript("test.clj");
Var foo = RT.var("user", "foo");
Object result = foo.invoke("Hi", "there");
System.out.println(result);
與test.clj看起來像:
(ns user)
(defn foo [a b]
(str a " " b))
,但沒有運氣。
我認爲它與RT.makeClassLoader()
或RT.baseLoader()
有關,並使用返回的加載器來加載clojure文件,但我似乎無法使其工作。 (我不斷收到ClassNotFound
)我可能會混淆通過javadoc的clojure.lang.RT
,但我根本找不到它們。
是啊...哪裏有javadoc! #:/ – progo 2011-05-28 16:50:42