代码之家  ›  专栏  ›  技术社区  ›  brice

如何从java类路径之外动态加载Clojure脚本?

  •  5
  • brice  · 技术社区  · 15 年前

    如何从类路径之外动态加载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

    2 回复  |  直到 15 年前
        1
  •  6
  •   Stuart Sierra    15 年前

    尝试 clojure.lang.Compiler.loadFile(String file)

        2
  •  1
  •   Hamza Yerlikaya    15 年前

    只要它们依赖于类路径中的内容,就可以将文件作为字符串读取并计算它,

    (def content "(ns user) (defn foo [a b] (str a \" \" b))")
    (map eval (read-string (str \( content \))))
    

    推荐文章