ユーザーが入力したスクリプトの小さなスニペットを実行するために、JSR 223 経由で Nashorn を使用しています。
public Invocable buildInvocable(String script) throws ScriptException {
ScriptEngine engine = new ScriptEngineManager().getEngineByName(ENGINE);
engine.eval(functions);
engine.eval(script);
return (Invocable) engine;
}
functions
さまざまなユーザー スクリプトは、静的な中央ライブラリ (上記のコード スニペットの文字列に保持されている) で定義されている JavaScript 関数を呼び出します。
Java から呼び出すことができるを取得するたびにInvocable
、大きなライブラリ コードを常に再コンパイルする必要があります。
以前にコンパイルしたコードを新しいコードに結合する方法はありますか?