首先要到http://www.beanshell.org/download.html去下载个BeanShell的一个包,如bsh-2.0b4.jar ,然后在ClassPath中将它的地址加上.
package test; import java.util.Date; import bsh.EvalError; import bsh.Interpreter; public class Test { public static void main(String[] args) { Interpreter interpreter = new Interpreter(); String s = "2>3||3>4&&5<4"; try { interpreter.set("boolean", interpreter.eval("(" + s +")")); System.out.println(interpreter.get("boolean")); } catch (EvalError e) { e.printStackTrace(); } } }
从你的应用程序调用BeanShell
通过建立一个BeanShell解释器,使用eval()或source()命令,你可以在你的应用程序中求文本表达式的值和运行脚本。如果你希望在你的脚本内部使用一个对象,可以用set()方法传递对象的变量参数给BeanShell,并通过get()方法取得结果。
import bsh.Interpreter; Interpreter i = new Interpreter(); // Construct an interpreter i.set("foo", 5); // Set variables i.set("date", new Date() ); Date date = (Date)i.get("date"); // retrieve a variable // Eval a statement and get the result i.eval("bar = foo*10"); System.out.println( i.get("bar") ); // Source an external script file i.source("somefile.bsh");
如官方的例子
Here are some examples:
Interpeter bsh = new Interpreter(); // Evaluate statements and expressions bsh.eval("foo=Math.sin(0.5)"); bsh.eval("bar=foo*5; bar=Math.cos(bar);"); bsh.eval("for(i=0; i<10; i++) { print(\"hello\"); }"); // same as above using java syntax and apis only bsh.eval("for(int i=0; i<10; i++) { System.out.println(\"hello\"); }"); // Source from files or streams bsh.source("myscript.bsh"); // or bsh.eval("source(\"myscript.bsh\")"); // Use set() and get() to pass objects in and out of variables bsh.set( "date", new Date() ); Date date = (Date)bsh.get( "date" ); // This would also work: Date date = (Date)bsh.eval( "date" ); bsh.eval("year = date.getYear()"); Integer year = (Integer)bsh.get("year"); // primitives use wrappers // With Java1.3+ scripts can implement arbitrary interfaces... // Script an awt event handler (or source it from a file, more likely) bsh.eval( "actionPerformed( e ) { print( e ); }"); // Get a reference to the script object (implementing the interface) ActionListener scriptedHandler = (ActionListener)bsh.eval("return (ActionListener)this"); // Use the scripted event handler normally... new JButton.addActionListener( script );
相关推荐
java的工具类库, 运行过程中可执行嵌入java代码
也就是说BeanShell在许多方面对于Java的用处就像Tcl/Tk对于C的用处一样:BeanShell是可嵌入式的---你可以在运行时从你的应用程序调用BeanShell去动态的执行Java代码或是为你的应用程序提供脚本扩展。相反,你也可以...
根目录Bean/bin文件夹下bsh-core-2.0b4.jar文件是jar包, 根目录Bean/com/strart.java是用BeanShell计算1+2=3的代码例子
先按 说明.txt 中的方案解决 如果替换jar包后导致错误,可以用如下...把项目上“bsh-2.0b”原文件中的 \bsh\servlet\BshServlet.class 文件删除,重启服务 影响版本:NC57 / NC63 / NC65 / NCC1903 / NCC1909 / NCC2005
一个神奇的Java库:bsh for android,可以动态运行Java代码,非常好用。
联合会Android Java Shell应用程式 使用此应用程序,您可以快速评估一些Android Java代码-用于快速迭代,实验和API探索的脚本风格。 有时,您只想评估一些Android代码而不编译项目-这是您完成此工作的应用程序。 ...
通过脚本语言让JAVA执行动态代码2.用Spring可以将脚本语言代理成Java接口的实现类3.Spring2.5.6中支持三种脚本语言ruby,Groovy,BeanShell4.示例中为spring与beanshell结合5.依赖spring2.5.6,bsh-2.0b4 代码如下:...
java架构师148讲视频教程 │ ├─1-148视频教程 │ 第01节:整体课程概览.flv │ 第02节:分模块、分工程管理.avi │ 第03节:多模块多Web应用合并War包.avi │ 第04节:Git基本原理和安装配置使用.avi │ 第05节...
Beanshell (bsh) 是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性。BeanShell执行 标准Java语句和表达式,另外包括一些脚本命令和语法。
Beanshell是用Java写成的,是一个小型的、免费的的、可嵌入式的Java源代码解释器,具有对象脚本语言特性。 BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。它将脚本化对象看作简单闭包方法...
Java 工具和实用程序的集合。 这些工具要么是实验性的,要么依赖于第三方库。 整个项目依赖于 JTools,测试代码使用 TestNG。 除此之外,每个包都记录了自己的依赖关系。 用法 该项目旨在成为一个实用程序库。 该...