Как я динамично загружаю сценарий Clojure из за пределами моего пути к классу от Java?

Я хочу позволить определяемым пользователем сценариям Clojure взаимодействовать с моим Приложением Java. Проблема, я не знаю заранее, где сценарии 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, но я просто не мог найти их.

5
задан brice 30 July 2010 в 14:11
поделиться