全局环境处理多个脚本引擎调用

时间:2012-12-08 00:22:42

标签: java global state simultaneous scriptengine

我们很好奇脚本引擎如何处理全局变量。我们正在寻找一个脚本引擎,它不会在调用时保留全局变量的状态。那里有引擎吗?我们正在寻找一种脚本语言,我们可以在Java脚本引擎API下使用它。

当对脚本引擎进行多次调用时,对eval()或evaluate()方法的顶级调用会保留全局变量的状态,这意味着对eval()的后续调用将使用全局变量。最后一次调用。是否有一个脚本引擎不保留状态,或者提供重置状态的能力,以便每次调用脚本引擎时全局变量都处于初始状态?

1 个答案:

答案 0 :(得分:0)

对eval()的后续调用不会重置scriptEngine的状态:

    myScriptEngine.eval("var myGlobalVar = 5");
    myScriptEngine.eval("myGlobalVar++"); //will set myGlobalVar to 6;

另一方面,来自一个ScriptEngineManager的多个scriptEngine是完全独立的(至少JAV8就是这种情况)。