使用javax
scriptAPI本节给出了javax
scriptAPI的概览,展示了如何执行脚本来访问Java对象、如何从Java代码调用JavaScript函数,以及如何为所编译的脚本实现缓存机制
执行脚本javax
scriptAPI十分简单
可以先创建一个ScriptEngineManager实例,有了这个实例就能用下列方法中的任一个来获得ScriptEngine对象(参见清单1):getEngineByName()getEngineByExtension()getEngineByMimeType()清单1
获得一个ScriptEngine实例importjavax
script
ScriptEngineManagermanager=newScriptEngineManager();ScriptEngineengine=manager
getEngineByName("JavaScript");
engine
);此外,还可以通过getEngineFactories()获得可用脚本引擎的列表
目前,只有JavaScript引擎是与JDK6捆绑的,不过ScriptEngineManager实现了一种发现机制,能发现支持JSR-223ScriptingfortheJavaPlatform的第三方引擎
只需将脚本引擎的JAR文件放入CLASSPATH即可
获得了javax
script
ScriptEngine实例后,就可以调用eval()来执行脚本了
也可以将Java对象作为脚本变量导出,其间要将Bindings实例传递给eval()方法
清单2所示的ScriptDemo
java示例导出两个名为demoVar和strBuf的变量、执行DemoScript
js脚本,然后让这些变量输出它们修改后的值
ScriptDemo