快速业务通道

为Java应用程序加入脚本引擎 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-07-04

为Java应用程序加入脚本引擎

时间:2011-06-19 IBM 陈先波

前言

现代许多流行的应用程序,越来越多的使用了脚本引擎,最典型的有 Microsoft Office中的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)到脚本代码中并且作为结果返回。

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

BeanShell的变量或参数的类型可以不用显示的指定,如下:

int multiply(a, b) {    return a*

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号