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