public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
ScriptEngineFactory factory=engine.getFactory();
System.out.println( factory.getParameter(ScriptEngine.ENGINE ));
System.out.println( factory.getParameter(ScriptEngine.ENGINE_VERSION ));
System.out.println( factory.getParameter(ScriptEngine.NAME ));
System.out.println( factory.getParameter(ScriptEngine.LANGUAGE));
System.out.println( factory.getParameter(ScriptEngine.LANGUAGE_VERSION ));
/**
* 保留键 THREADING,它的值描述了与脚本并发执行和状态维护有关的引擎行为。
* null - 引擎实现不是线程安全的,并且无法用来在多个线程上并发执行脚本。
* "MULTITHREADED" - 引擎实现是内部线程安全的,并且脚本可以并发执行,尽管在某个线程上执行脚本的效果对于另一个线程上的脚本是可见的。
* "THREAD-ISOLATED" - 该实现满足 "MULTITHREADED" 的要求,并且引擎为不同线程上执行的脚本中的符号维护独立的值。
* "STATELESS" - 该实现满足 "THREAD-ISOLATED" 的要求。此外,脚本执行不改变 Bindings 中的映射关系,该 Bindings 是 ScriptEngine 的引擎范围。
* 具体来说,Bindings 及其关联值中的键在执行脚本之前和之后是相同的。
*/
System.out.println( factory.getParameter("THREADING"));
}
输出结果:
Mozilla Rhino
1.6 release 2
javascript
ECMAScript
1.6
MULTITHREADED