BeanShell快速入门Java应用_第1页
BeanShell快速入门Java应用_第2页
BeanShell快速入门Java应用_第3页
BeanShell快速入门Java应用_第4页
BeanShell快速入门Java应用_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/快速入门欢迎使用BeanShell.这是一个速成课程。我们将省去一些重要的选项和细节。要学习更多的内容请看本User´sGuide的其它部分。下载和运行BeanShell请到/下载最新的JAR文件。你可以用图形桌面模式和命令行模式起动BeanShell。

如果你只是要玩一玩BeanShell,你可以在BeanShell的jar文件上双击来起动BeanShell的桌面。但不管怎样,如果你要让BeanShell与你的类与应用程序一起工作就必须将BeanShell的jar文件加到classpath中。

你可以将BeanShell的jar文件拖到JAVA_HOME的ext目录也可以直接加到classpath中。个人收集整理勿做商业用途windows用户请将bsh.jar放在JAVA_HOME/jre/lib/ext文件夹,OSX用户可以放在/Library/Java/Extensions.

或者增加BeanShell到你的classpath目录,如:

unix:

exportCLASSPATH=$CLASSPATH:bsh-xx.jar

windows:setclasspath%classpath%;bsh-xx.jar个人收集整理勿做商业用途然后你就可以运行BeanShell在GUI或命令行模式:

javabsh.Console

//runthegraphicaldesktop

or

javabsh.Interpreter

//runastext-onlyonthecommandline

or

javabsh.Interpreterfilename[args]//runscriptfile个人收集整理勿做商业用途可以在你的应用程序内部来运行,也可以作为debug及servlet的远程服务器模式,或一个Applet内部来运行BeanShell。请参考"BeanShellModesofOperation"获得更多详情。个人收集整理勿做商业用途BeanShellGUI用GUI模式启动BeanShell后,将打开一个桌面视窗。用鼠标右击在桌面的背景上,你可以打开另一个控制台视窗及其它的工具如一个简单的类游览器。

每一个控制台视窗运行一个独立的BeanShell解释器。这个图形化的控制台支持基本的历史命令,行编辑,剪切和粘贴,甚至类和变量名的自动完成功能。从控制台你能开启一个简单的编辑视窗。在它里面,你可以编写脚本和使用‘eval’选项求表达式的值。个人收集整理勿做商业用途Java语句和表达式BeanShell能理解标准的JAVA语句,表达式,和方法宣告。语句和表达式的内容可以是:变量,宣告,赋值,方法调用,循环,条件等。

在Java程序中你必须严格的使用它们,但在BeanShell中,你可以用“宽松类型”(looselytyped)的方式来使用它们。也就是说,你可以在写脚本时偷懒,不进行变量类型的宣告(在原始数据类型和对象都可以)。如果你试着用错变量类型,BeanShell将会给出一个错误。

这里有一些例子:个人收集整理勿做商业用途foo="Foo";

four=(2+2)*2/2;

print(foo+"="+four);

//print()isaBeanShellcommand

//Doaloop

for(i=0;i<5;i++)

print(i);

//Popupaframewithabuttoninit

button=newJButton("MyButton");

frame=newJFrame("MyFrame");

frame.getContentPane().add(button,"Center");

frame.pack();

frame.setVisible(true);个人收集整理勿做商业用途有用的BeanShell命令在刚才那个例子中我们用了一个内建在BeanShell中的一个方便的命令print(),来显示变量的值。print()跟ava的System.out.println()非常的相像,除非它能保证输出总是命令行。print()也可以显示一些对象的类型(如数组),但比Java的更详细。另一个相关的命令是show(),用来开启与关闭显示你输入的每一行的结果。

这儿是一些其它的BeanShell的命令:

source(),run()-将一个bsh脚本读到解释器或运行在另一个解释器。

frame()-显示一个Frame或JFrame的GUI组件.

load(),save()-载入和保存一个序列化的对象到一个文件.

cd(),cat(),dir(),pwd(),etc.-类unix的shell命令。

exec()-运行一个本地的程序。

javap()-打印一个对象的方法和字段,类似于Java的javap命令。

setAccessibility()-开启无限制的存取private和protected的组件。

要获得更多的信息请查看BeanShell命令的详细清单。个人收集整理勿做商业用途提示:

BeanShell命令并不是真的"内建"其中的,而是作为脚本方法自动从classpath载入的.你可以扩展基本命令集并加到classpath中作为自订义的脚本来使用。个人收集整理勿做商业用途脚本方法你可以在bsh中宣告和使用方法,就像在java的类中一样。intaddTwoNumbers(inta,intb){

returna+b;

}

sum=addTwoNumbers(5,7);

//12个人收集整理勿做商业用途bsh的方法可以有动态的(宽松的)参数和返回类型。add(a,b){

returna+b;

}

foo=add(1,2);

//3

foo=add("Oh","baby");

//"Ohbaby"个人收集整理勿做商业用途实现Interface注意:如果要BeanShell能实现任意的Interface,必须有jdk1.3及以上支持。

你可以在脚本中用标准的Java内部类的语法来实现Interface.例如:个人收集整理勿做商业用途ActionListenerscriptedListener=newActionListener(){

actionPerformed(event){...}

}个人收集整理勿做商业用途你可以不用实现Interface的所有方法,而只用实现你需要的方法。如果代码中调用了未被实现的方法,将丢出异常。如果你想重载大量的方法的行为--例如为日志生成一个"哑"适配器--你可以在脚本对象中实现一个特殊的方法:invoke(name,args)。invoke()方法用来处理任何未被定义的方法的调用:个人收集整理勿做商业用途ml=newMouseListener(){

mousePressed(event){...}

//handletherest

invoke(name,args){print("Method:"+name+"invoked!");

}个人收集整理勿做商业用途脚本对象在BeanShell中,和在JavaScript与Perl中一样,脚本对象是用封闭的方法体一构成的。通过在方法未尾返回一个特殊值"this",你就可以像使用方法一样调用这个对象了。在这个方法调用时,你可以给与它任何的值。通常对象内部需要包括方法,所以BeanShell的脚本方法在一定程度上可再包含一些方法以构成脚本对象。例如:个人收集整理勿做商业用途foo(){

print("foo");

x=5;

bar(){

print("bar");

}

returnthis;

}

myfoo=foo();

//prints"foo"

print(myfoo.x);//prints"5"

myfoo.bar();

//prints"bar"个人收集整理勿做商业用途如果这些代码对你来说很陌生,别急,请用户手册可得到更透彻的解释。在你的脚本中,BeanShell脚本对象(也就是先前例子中的"this"参照)能自动实现任何JAVA介面类型。当JAVA代码调用相应与之通讯的脚本方法内的方法。当你试着将脚本对象作为参数传给Java方法时,BeanShell会自动将它造型(cast)为相应的类型。如要传递BeanShell外部的对象时,你可以在需要时显式的进行造型(cast).请看用户手册中的详细内容。个人收集整理勿做商业用途从你的应用程序调用BeanShell通过建立一个BeanShell解释器,使用eval()或source()命令,你可以在你的应用程序中求文本表达式的值和运行脚本。如果你希望在你的脚本内部使用一个对象,可以用set()方法传递对象的变量参照给BeanShell,并通过get()方法取得结果。个人收集整理勿做商业用途importbsh.Interpreter;

Interpreteri=newInterpreter();

//Constructaninterpreter

i.set("foo",5);

//Setvariables

i.set("date",newDate());

Datedate=(Date)i.get("da

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论