• 测试技术
  • 博客
  • 视频
  • 开源
  • 论坛
  • 沙龙
  • 下载
  • 杂志
  • 招聘

字号: | 推荐给好友 上一篇 | 下一篇

动态调用动态语言,第 1 部分: 引入 Java 脚本 API

发布: 2008-6-30 14:40 | 作者: 不详 | 来源: 领测软件测试网编辑整理 | 查看: 58次 | 进入领测软件测试网论坛讨论

领测软件测试网

XIQ o8B!i-Cdy9\ 软件测试技术门户;g\|6e"R@

图 1 显示了应用程序、Java 脚本 API 和 ScriptEngine 实现、脚本语言解释器之间的总体关系。我们可以看到,应用程序只依赖于脚本 API,它提供了 ScriptEngineManager 类和 ScriptEngine 接口。ScriptEngine 实现组件处理使用特定脚本语言解释器的细节。

X7I'@ lV%rF

Vd(]nv'x软件测试技术门户2J7A-c q#S#K/\
图 1:脚本 API 组件关系软件测试技术门户 yV4}6D"YL
 脚本 API 组件图 软件测试技术门户G!{-G} t,d2]h

1D+P q7qB$f N您可能会问:如何才能获取脚本引擎实现和语言解释器所需的 JAR 文件呢?最好的方法是在 java.net 上托管的开源 Scripting 项目中查找脚本引擎实现(请参阅 参考资料)。您可以在 java.net 上找到许多语言的脚本引擎实现和其他网站的链接。Scripting 项目还提供了各种链接,通过这些链接可以下载受支持的脚本语言的解释器。 软件测试技术门户T l oAx:fp?:^0t

s*J(x-{-P5i在 清单 1 中,main() 方法将 ScriptEngine 传递给各个方法用于计算该方法的 JavaScript 代码。第一个方法如清单 2 所示。invokeHelloScript() 方法调用脚本引擎的 eval 方法计算和执行 JavaScript 代码中的特定字符串。ScriptEngine 接口定义了 6 个重载的 eval() 方法,用于将接收的脚本当作字符串或 java.io.Reader 对象计算,java.io.Reader 对象一般用于从外部源(例如文件)读取脚本。

#VI5\*P9Ks/a|7r

k{~UAl
K f6Y(fz@G清单 2. invokeHelloScript 方法
nS~3[h"d                软件测试技术门户LCw HJ |2p
private static void invokeHelloScript(ScriptEngine jsEngine) throws ScriptException {软件测试技术门户;q Pv5{%?v(}-VV
    jsEngine.eval("println('Hello from JavaScript')");软件测试技术门户'O+CZ y5Dd2D:z^
}
Z[8\sK w%y&L~ 

[;uhZ+}/?

$m