Welcome 微信登录

首页 / 软件开发 / JAVA / 使用JavaScript脚本化Java应用

使用JavaScript脚本化Java应用2011-04-03 IBM 邱俊涛脚本化技术

我喜欢在 vim 或者 emacs 编辑环境中进行文档,代码以及邮件等的编写,她们都提 供了良好的命令和快捷键,但是这些都不足以使得她们被誉为 world-class 编辑器,她 们的强大的真正来源,正是脚本技术。使用脚本,您可以将您的 vim 或者 emacs 配置得 无所不能,甚至有人通过脚本来 让 emacs 煮咖啡。

什么是脚本化

脚本化可以使 宿主 程序具有 脚本 所描述的能力,比如流行在 DHTML 页面中的 JavaScript 技术,JavaScript 可以让原本是静态的 HTML 代码的页面“活”起来,具有 动画,局部刷新等更高级的功能。应用程序一般是以二进制的形式发布的,用户很难根据 自己的需求对其进行定制,当然,修改配置文件是一种方式,但是不够灵活。而脚本化则 是通过用户自己设计脚本(程序代码 ),然后将其 注入 到应用中,使得应用的行为得 到改变。

如何脚本化您的应用

通常的做法是,将 宿主 程序的一部分组件暴露给脚本,以方便脚本对其定制,这些 组件的作用范围是全局的(可以通过公开接口暴露,也可以将组件实例设置到脚本上下文 (context)中),脚本可以在其中添加,修改一些子组件,从而实现定制的目的。本文 将通过一个实例来对这个过程以说明,在文章的最后,我们可以得到一个可以运行的小应 用出来,如果您对其有不满意之处,可以任意的扩展它。

JDK 6 中,添加了对脚本的支持,并实现了一些常见的脚本语言与 Java 的交互,比 如 Python(Jython)、 JavaScript(rhino)等语言。文中使用的脚本语言为 JavaScript,宿主语言为 Java。(JavaScript 在 DHTML 中应用很广泛,同时,也是我 最喜欢的一门编程语言)

一个小的 todo 管理器

在文中,我们会先实现一个小型的应用:一个简单的 todo(待办事项)管理器,然后 开发一个插件(脚本)框架,最后将使用这个框架对 todo 管理器进行脚本化。

图 1. sTodo 主界面