BeanShell是一个小型的、免费的、可嵌入使用Java编写的具有对象脚本语言特性的Java源码解释器。BeanShell动态执行标准的Java语法并且扩展了诸如弱语言类型、指令以及像Perl和JavaScript的方法闭包的通用脚本。
你可以使用交互式的BeanShell实现Java实验和调试,也可以使用新的方法扩展应用程序。脚本式Java使应用程序更加多样化,快速建模、用户脚本扩展、规则引擎、配置、测试、动态部署、嵌入式系统还有Java训练。
BeanShell具有小型以及可嵌入的特征,所以你可以从你的应用程序中调用BeanShell在程序运行的时候来动态执行Java代码或者提供应用程 序的可扩展性。你可以使用独立的BeanShell脚本操作Java应用程序;动态地与java对象和API一起工作,二者选一。既然BeanShell 使用Java编写而且与你的应用程序运行在同一台虚拟机上,你可以自由地给脚本传递“实时”的对象并且作为结果返回。
总之,BeanShell是动态解析的Java,加上脚本语言以及灵活的环境所有这一切组成一个完整的包。
功能摘要
- 动态执行所有Java语句、Java代码片段以及弱类型Java和附加的脚本的便利
- 透明地访问所有Java对象和API
- 四种运行模式:命令行、控制台、Applet、远程会话服务
- 可以在受安全限制的环境下工作,不需要类加载器或者绝大多数功能的字节码生成器
- 程序只有大约150K的Jar文件
- 纯Java
- 免费
Java的求值功能:
对所有的Java源码类和独立的Java方法、声明和表达式进行动态求值。
脚本功能:
- 可选类型的变量
- 可选类型的参数和返回值的脚本方法
- 脚本对象(方法闭包)
- 脚本接口和事件处理
- 使用JavaBean属性,哈希表以及原始的包装类型这些便利的语法
- 自动分配变量来模拟Java属性文件
- 可扩展的公共程序集以及类似shell的命令
- 动态的classpath管理包括重装微粒类
- 动态的加载命令和用户命令路径
- 复杂的命名空间以及堆栈调用管理
- 详细的错误报告
BeanShell的使用:
- 交互式的Java——尝试对象功能,API以及GUI小部件——“亲身实践”
- 应用程序脚本扩展——允许你使用直观而且简单的方法通过脚本扩展应用程序
- 宏语言——作为宏来生成脚本并且在你的虚拟机中容易得执行
- 教育——亲自教授Java,在在线的环境下
- 科学、金融应用程序和规则引擎的表达式求值者——通过条件和循环求出复杂的表达式的值
- 远程调试——在你的应用程序中只要几行代码嵌入一个实时、远程访问的shell/命令
- 声名式地使用BeanShell来代替属性文件和启动配置文件,(这些配置文件)完全使用Java语法处理执行复杂的初始化以及启动的脚本
转载于:https://blog.51cto.com/tongqiuyan/739922