我该如何从我的Java应用程序中启动Clojure REPL并提供一些“预定义变量”(我是Clojure新手,我猜这个术语有更好的说法)?实际上我已经碰巧尝试过让它工作了...我开始使用
clojure.main
,然后添加了一个额外的调用RT.var()。这是正确的做法吗?import clojure.lang.Symbol;
import clojure.lang.Var;
import clojure.lang.RT;
public class MyClojure {
final static private Symbol CLOJURE_MAIN = Symbol.intern("clojure.main");
final static private Var REQUIRE = RT.var("clojure.core", "require");
final static private Var MAIN = RT.var("clojure.main", "main");
// Provide some context, this is my custimisation...
@SuppressWarnings("unused")
final static private Var Test = RT.var("testme", "myvar", "This is the initial value");
public static void main(String[] args) throws Exception {
REQUIRE.invoke(CLOJURE_MAIN);
MAIN.applyTo(RT.seq(args));
}
}
编辑:我的应用不是Web应用程序。它是一个独立的桌面应用程序,基本上显示/编辑POJO数据模型。现在我想添加支持,以将数据模型从正在运行的应用程序暴露给Clojure REPL。然后,我将能够通过原始应用程序和REPL修改/检查数据模型。
create-repl-server 11111
并连接到本地主机即可。你不必担心如何启动 Web 服务器来启动你的 REPL,直接这样做就可以了。 - Arthur Ulfeldt