本文章由公号【开发小鸽】发布!欢迎关注!!!
老规矩–妹妹镇楼:
一. 脚本
(一) 概述
脚本语言是一种通过在运行时解释程序文本,从而避免使用通常的编辑/编译/链接/运行循环的语言,脚本语言的优势是快速变更,可以修改运行着的程序,但是,脚本语言缺乏可以使编写复杂应用受益的特性,因此人们通常将脚本语言与传统语言的优势结合起来。脚本API使你可以在Java平台上实现这个目的,直接在Java程序中调用脚本。
(二) 脚本引擎
1. 概述
脚本引擎是一个可以执行用某种特定语言编写的脚本的类库,当虚拟机启动时,它会发现可用的脚本引擎,为了枚举这些引擎,需要构造一个ScriptEngineManager,并调用getEngineFactories方法,可以向每个引擎工厂询问他们所支持的引擎名,MIME类型和文件扩展名,通过这三个参数来获取引擎。
ScriptEngine engine = manager.getEngineByName(“nashorn”);
2. 脚本计算与绑定
拥有了引擎,可以直接调用脚本:
Object result = engine.eval(scriptString);
engine eval(“n = 1”);
可以在一个引擎上调用多个脚本,如果一个脚本定义了变量,函数或者类,那么大多数引擎都会保留这些定义。
可以直接向引擎中添加新的变量绑定,绑定由名字及其关联的java对象构成:
engine.put(“k”, 1);
脚本代码从“引擎作用域”中的绑定里读取k的定义,还可以添加到全局作用域中,任何添加到ScriptEngineManager中的绑定对于所有引擎都是可视的。
3. 重定向输入和输出
可以通过调用脚本上下文的setReader和setWriter方法来重定向脚本的标准输入和输出。
var writer = new StringWriter();
engine.getContext().setWriter