JavaアプリケーションからClojure REPLを起動し、いくつかの「事前定義済みの変数」を提供するにはどうすればよいですか(私はClojure初心者です。実際に私はすでに偶然にも動作させようとしました... clojure.main
で始まり、RT.var()の追加呼び出しを追加しました。これは正しい方法ですか?JavaからClojure REPLを実行し、カスタムコンテキストを提供
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));
}
}
EDIT:私のアプリケーションはWebアプリケーションではありません。基本的にpojoデータモデルを表示/編集するスタンドアロンのデスクトップアプリケーションです。私は今、実行中のアプリケーションからデータモデルをClojure replに公開するサポートを追加したいと考えています。私は、元のアプリケーションとreplの両方のデータモデルを変更/検査することができます。あなたはclojure.contrib/server-socket's create-repl-server
function探している
にもあります私が探しているもの。あなたがそれを言うなら、あなたは正しいかもしれませんが、上の私の編集を見てください。 – zedoo
それよりも簡単です。 'create-repl-server 11111'を呼び出してlocalhostに接続するだけです。あなたはあなたのreplを開始するWebサーバーを取得しようとすることについて心配する必要はありません、あなたはそれを直接行うことができます。 –
しかし、私は私のJavaの "ホスト"アプリケーションの中から起動したいと思う。 – zedoo