Я использую метод RT. Я помещаю свой код Clojure в файл сценария, который я включаю, и обрабатываю при запуске:
try {
RT.loadResourceScript("com/mydomain/app/clojure_scripts.clj"); // Initialize Clojure script processor with our script
} catch (Exception e) {
Util.logException(e, "Unable to run Clojure initialization script.");
}
Тогда, поскольку моя основная логика в Java, и я обращаюсь к Clojure только для вычислений, я использую некоторый клейкий код для отображения вызовов для меня:
/*
* Class to wrap Clojure scripts with Java friendly methods.
*/
public class Clojure {
private static final String ns="com.mydomain.app";
public static double calculate(final double size, final double otherVar) {
Var report=RT.var(ns, "calculate");
return (Double) report.invoke(size, otherVar);
}
};