Desidero abilitare gli script Clojure definiti dall'utente per interagire con la mia app Java. Il problema è che non so in anticipo dove saranno posizionati gli script Clojure, quindi non posso includerli nel mio classpath durante l'esecuzione dell'app.Come caricare dinamicamente uno script Clojure dall'esterno del mio classpath da java?
Come caricare dinamicamente uno script Clojure dall'esterno del classpath?
Ho provato il semplice esempio:
RT.loadResourceScript("test.clj");
Var foo = RT.var("user", "foo");
Object result = foo.invoke("Hi", "there");
System.out.println(result);
con un test.clj che assomiglia:
(ns user)
(defn foo [a b]
(str a " " b))
ma senza fortuna.
Penso che abbia qualcosa a che fare con RT.makeClassLoader()
o RT.baseLoader()
e utilizzare il caricatore restituito per caricare il file clojure, ma non riesco a farlo funzionare. (Continuo a ricevere ClassNotFound
) Potrei probabilmente confondermi con la javadoc per lo clojure.lang.RT
, ma semplicemente non sono riuscito a trovarli.
Sì ... dov'è il javadoc! #:/ – progo