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