前言
现代许多流行的应用程序,越来越多的使用了脚本引擎,最典型的有 Microsoft Oce 中的 VBA 等。脚
本引擎能提供应用程序极大的可扩展性,也是被许多热忠于二次开发的使用者所乐意看到的。本文主要讲
解 BeanShell----这样一个 Java 应用程序脚本引擎,你会了解它的基本特性,及如何将它嵌入到你的应用
程序中。你将看到,为自己的应用程序加上脚本引擎是多么容易的一件事情。
常见的脚本引擎
现在网络上流行着许多种脚本语言,如 TCL,Perl, JavaScript,Python 等,并且有许多脚本语言都有
基于 Java 的解释器,就笔者所知道的有如下几种:
Language Java Implementation
JavaScript Rhino
Python Jython (formerly JPython)
Tcl/Tk Jacl
Perl None
Java itself BeanShell
以上几种脚本都有各自的语法,而其中 JavaScript 和 BeanShell 的语法,对于使用者来说更具有亲切感。
本文主要讲解 BeanShell 的的特性及其如何集成到 Java 应用程序中。
什么是 BeanShell?
BeanShell 是一个小型的,免费的,可嵌入式的,具有面向对象脚本语言特性的 Java 代码解释器。它是
用 Java 语言写的。它能执行标准的 Java 语句和表达式,还自带简单的脚本命令和语法。它把编程对象当
成一个简单的方法,这很像 Perl 和 JavaScript.
你可以在写 Java 测试或调试时使用 BeanShell,也可以用它作为你的应用程序的脚本引挚。简而言之,
BeanShell 可以动态的解释 JAVA 语言。也就是说 BeanShell 在许多方面对于 Java 的用处就像 Tcl/Tk
对于 C 的用处一样:BeanShell 是可嵌入式的---你可以在运行时从你的应用程序调用 BeanShell 去动态
的执行 Java 代码或是为你的应用程序提供脚本扩展。相反,你也可以从 BeanShell 调用你的应用程序及
其对象,它可以让 JAVA 对象和 API 动态运行。正因为 BeanShell 是用 JAVA 写的,所以它可以和你的应
用程序运行在同一个 JVM 空间内,你也可以自由的传递实时对象的引用(References)到脚本代码中并且
作为结果返回。