我是Clojure的新手。我正在尝试在Clojure中构建我的计算单元(纯函数),并使用Java将所有这些函数绑定到一个程序中。
为了在Java中访问Clojure,我做了一件事,即提前编译和类生成。但它看起来很麻烦,削弱了将Clojure用于我的应用程序的想法。所以我的问题是有没有人试图在Java中访问Clojure函数(不包括类生成和AOT编译)?如果没有,那么如何使用纯粹的Clojure将这些计算单元(或Clojure函数)链接到一个程序(其中有几个相互关联的方法)?
答案 0 :(得分:3)
正如概述the general process:
import clojure.lang.RT;
RT.loadResourceScript("path/core.clj");
RT.var("mynamespace.core", "main")
invoke
方法答案 1 :(得分:0)
查看我的clojure-utils库。这里有很多方便的工具可以从Java调用Clojure代码。
这是一个微不足道的演示:
import mikera.cljutils.Clojure;
public class DemoApp {
public static void main(String [] args) {
String s = "(+ 1 2)";
System.out.println("Evaluating Clojure code: "+s);
Object result=Clojure.eval(s);
System.out.println("=> "+ result);
}
}
我更喜欢避免AOT编译:而是使用mikera.cljutils.Clojure
中的实用程序在运行时动态加载,编译和执行Clojure代码。