前言
现代许多流行的应用程序,越来越多的使用了脚本引擎,最典型的有Microsoft Office中的VBA等。脚本引擎能提供应用程序极大的可扩展性,也是被许多热忠于二次开发的使用者所乐意看到的。本文主要讲解BeanShell——这样一个应用程序脚本引擎,你会了解它的基本特性,及如何将它嵌入到你的应用程序中。你将看到,为自己的应用程序加上脚本引擎是多么容易的一件事情。
常见的脚本引擎
现在网络上流行着许多种脚本语言,如TCL,Perl, Script,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)到脚本代码中并且作为结果返回。
BeanShell脚本语言简介
BeanShell能理解标准的JAVA语句,表达式,和方法宣告。语句和表达式的内容可以是:变量,宣告,赋值,方法调用,循环,条件等。
在Java程序中你必须严格的使用它们,但在BeanShell中,你可以用"宽松类型"(loosely typed)的方式来使用它们。也就是说,你可以在写脚本时偷懒,不进行变量类型的宣告(在原始数据类型和对象都可以)。如果你试着用错变量类型,BeanShell将会给出一个错误。总之BeanShell的脚本是很容易上手的。
这里有一个简单的例子:
foo = "Foo"; four = (2 + 2)*2/2; print( foo + " = " + four ); // print() 是BeanShell的一个脚本命令。 // 循环 for (i=0; i<5; i++) print(i); //显示一个有包含一个按钮的窗口 button = new JButton( "My Button" ); frame = new JFrame( "My Frame" ); frame.getContentPane().add( button, "Center" ); frame.pack(); frame.setVisible(true); |
你也可以在Beanshell脚本中宣告和定义自己的方法:
int multiply(int a, int b) { return a*b; } print(multiply(12,14));//打印出168 |
[1]
【责编:huangchunmei】
--------------------next---------------------
阅读(345) | 评论(0) | 转发(0) |