Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1930879
  • 博文数量: 699
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4970
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 13:45
文章分类

全部博文(699)

文章存档

2011年(1)

2008年(698)

我的朋友

分类:

2008-10-15 13:53:37

  前言
 
  现代许多流行的应用程序,越来越多的使用了脚本引擎,最典型的有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) |
给主人留下些什么吧!~~