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