当前位置:

Java专业语言辅导:动态调用动态语言之Java脚本API(4)

发表时间:2015/8/28 11:38:49 来源:互联网 点击关注微信:关注中大网校微信
关注公众号

ScriptEngineManager 类

ScriptEngineManager 可能是脚本包中惟一一个经常使用的具体类;其他大多数都是接口。它或许是脚本包中惟一的一个要直接或间接地(通过 Spring Framework 之类的依赖性注入机制)实例化的类。ScriptEngineManager 可以使用以下三种方式返回脚本引擎:

·通过引擎或语言的名称,比如说 清单 1 请求 JavaScript 引擎。

·通过该语言脚本共同使用的文件扩展名,比如说 Ruby 脚本的 .rb。

·通过脚本引擎声明的、知道如何处理的 MIME 类型。

本文示例为什么要使用 JavaScript?

本文中的 Hello World 示例使用了部分 JavaScript 脚本,这是因为 JavaScript 代码易于理解,不过主要还是因为 Sun Microsystems 和 BEA Systems 所提供的 Java 6 运行时环境附带有基于 MozillaRhino 开源 JavaScript 实现的 JavaScript 解释器。使用 JavaScript,我们无需在类路径中添加脚本语言 JAR 文件。

ScriptEngineManager 间接查找和创建脚本引擎。也就是说,当实例化脚本引擎管理程序时,ScriptEngineManager 会使用 Java 6 中新增的服务发现机制在类路径中查找所有注册的 javax.script.ScriptEngineFactory 实现。这些工厂类封装在 Java 脚本 API 实现中;也许您永远都不需要直接处理这些工厂类。

ScriptEngineManager 找到所有的脚本引擎工厂类之后,它会查询各个类并判断是否能够创建所请求类型的脚本引擎 —— 清单 1 中为 JavaScript 引擎。如果工厂说可以创建所需语言的脚本引擎,那么管理程序将要求工厂创建一个引擎并将其返回给调用者。如果没有找到所请求语言的工厂,那么管理程序将返回 null,清单 1 中的代码将检查 null 返回值并做出预防。

编辑推荐

JAVA认证考试报考指南 / 更多JAVA考试资料

(责任编辑:zyc)

2页,当前第1页  第一页  前一页  下一页
最近更新 考试动态 更多>

考试科目