Java SE 6新特性: 对脚本语言的支持 - 编程入门网
ndings 这两个接口,在例子脚本中并没有定义 greeting 这个变量,但是脚本通过 Java 脚本 API 能方便的存取 Java 应用程序中的对象,输出 greeting 相应的值。运行这个程序后,能看到输出为:
图 4. 程序 ScopeTest 的输出 除了能在 Java 平台与脚本程序之间的提供共享属性之外,ScriptContext 还允许用户重定向引擎执行时的输入输出流: 表 4. ScriptContext 输入输出重定向
Java SE 6新特性: 对脚本语言的支持(6)时间:2011-02-15 IBM 邱小侠清单 4 展示了如何通过 ScriptContext 将其对应的 ScriptEngine 标准输出重定向到一个 PrintWriter 中,用户可以通过与这个 PrintWriter 连通的 PrintReader 读取实际的输出,使 Java 应用程序能获取脚本运行输出,满足更加多样的应用需求。 清单 4. 重定向脚本输出
Java 脚本 API 分别为这两个接口提供了一个简单的实现供用户使用。SimpleBindings 通过组合模式实现 Map 接口,它提供了两个构造函数。无参构造函数在内部构造一个 HashMap 实例来实现 Map 接口要求的功能;同时,SimpleBindings 也提供了一个以 Map 接口作为参数的构造函数,允许任何实现 Map 接口的类作为其组合的实例,以满足不同的要求。SimpleScriptContext 提供了 ScriptContext 简单实现。默认情况下,它使用了标准输入、标准输出和标准错误输出,同时维护一个 SimpleBindings 作为其引擎级别的 Bindings,它的默认全局级别 Bindings 为空。 脚本引擎可选的接口 在 Java 脚本 API 中还有两个脚本引擎可以选择是否实现的接口,这个两个接口不是强制要求实现的,即并非所有的脚本引擎都能支持这两个函数,不过 Java SE 6 自带的 JavaScript 引擎支持这两个接口。无论如何,这两个接口提供了非常实用的功能,它们分别是: Invocable 接口:允许 Java 平台调用脚本程序中的函数或方法。 Compilable 接口:允许 Java 平台编译脚本程序,供多次调用。 Invocable 接口 有时候,用户可能并不需要运行已有的整个脚本程序,而仅仅需要调用其中的一个过程,或者其中某个对象的方法,这个时候 Invocable 接口就能发挥作用。它提 |
||||||||||||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |