Je souhaite activer les scripts Clojure définis par l'utilisateur pour interagir avec mon application Java. Le problème est, je ne sais pas à l'avance où les scripts Clojure seront situés, donc je ne peux pas les inclure dans mon classpath lors de l'exécution de l'application.Comment charger dynamiquement un script Clojure depuis l'extérieur de mon chemin de classe à partir de Java?
Comment charger dynamiquement un script Clojure depuis l'extérieur de mon chemin de classe?
J'ai essayé l'exemple simple:
RT.loadResourceScript("test.clj");
Var foo = RT.var("user", "foo");
Object result = foo.invoke("Hi", "there");
System.out.println(result);
avec un test.clj qui ressemble à:
(ns user)
(defn foo [a b]
(str a " " b))
Mais pas de chance.
Je pense qu'il a quelque chose à voir avec RT.makeClassLoader()
ou RT.baseLoader()
et en utilisant le chargeur retourné pour charger le fichier clojure, mais je n'arrive pas à le faire fonctionner. (Je continue à obtenir ClassNotFound
) Je pourrais probablement embrouiller le javadoc pour le clojure.lang.RT
, mais je ne pouvais tout simplement pas les trouver.
Ouais ... où est le javadoc! #:/ – progo