"克隆"已经加载脚本而不在java ScriptEngine中重新运行它们

时间:2017-08-06 10:47:24

标签: javascript java nashorn scriptengine

所以,我的问题如下:

可以说,我有一个需要预加载的js模块库。 我现在有几个脚本需要能够运行而不会干扰其他脚本。

脚本如下所示:

function A(){
}

function B(){
}

我想要做的是从脚本1调用函数A,从脚本2调用函数A.但是只有最后一个脚本被正确执行,因为它与我调用的是相同的ScriptEngine。

我试过这样的尝试:

   public static ScriptEngine eval(BufferedReader file) throws ScriptException {
    SimpleScriptContext context = new SimpleScriptContext();
    context.getBindings(ScriptContext.ENGINE_SCOPE).putAll(engine.getBindings(ScriptContext.ENGINE_SCOPE));
    ScriptEngine dengine = new NashornScriptEngineFactory().getScriptEngine("-strict");
    dengine.eval(file,context);
    ClassLoader cl = MyClass.getInstance().getClass().getClassLoader();
    Thread.currentThread().setContextClassLoader(cl);
    return dengine;
}

创建多个ScriptEngines。但那失败了。那么什么是正确的尝试,克隆"已经加载脚本而不重新运行它们?

0 个答案:

没有答案