首先要到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计算数学表达式的结果主要依赖于像bsh(BeanShell)这样的库,BeanShell是一个小型、开源的Java脚本环境,它可以动态执行Java代码并提供一个交互式的解释器。在这个场景中,`bsh-2.0b4.jar` 是BeanShell的一个...
java的工具类库, 运行过程中可执行嵌入java代码
标题中的“用BeanShell来运行Java脚本”指的是利用BeanShell这个开源库在Java环境中执行动态的、交互式的Java代码。BeanShell是一个轻量级的Java Scripting引擎,它允许你在运行时执行Java代码,无需编译,极大地...
Java的BeanShell是一个轻量级、动态的脚本语言,它是专门为Java平台设计的,允许在运行时执行Java代码或者类似JavaScript的语法。BeanShell在Java应用中常被用来进行快速原型开发、测试以及扩展,它提供了一种简单的...
bsh(BeanShell)是一个轻量级的、动态的Java语言解释器,它允许在运行时执行Java语法和一些扩展语法的脚本。作为Java开发工具,bsh提供了一个强大的环境,开发者可以快速测试代码片段、原型设计、自动化任务,甚至...
首先,Beanshell 允许动态执行Java代码,这意味着在程序运行时可以编写、修改和执行Java表达式或语句,而无需重新编译整个应用程序。这对于测试、调试和快速原型设计非常有用。例如,你可以用它来快速实现一些临时的...
在Java应用程序中,BeanShell可以用来动态地执行或测试Java代码,为开发者提供了一种灵活的方式来扩展或控制应用的行为。 **jcr-1.0.jar**:这个文件代表了Java Content Repository (JCR) API的实现,它是一个标准...
它允许开发者在运行时动态地执行Java代码,这对于测试、调试或者在应用程序中实现脚本功能非常有用。在JBPM中,BeanShell被用来执行工作流中的脚本任务,提供了灵活的业务规则实现。 2. **jcr-1.0.jar**:这是Java ...
### PHP调用Java方法介绍 #### 一、背景与需求 在实际开发过程中,有时我们需要在PHP环境中调用Java的方法来实现特定的功能。...这种方式特别适用于需要复用已有Java代码或利用Java生态系统的场景。
也就是说BeanShell在许多方面对于Java的用处就像Tcl/Tk对于C的用处一样:BeanShell是可嵌入式的---你可以在运行时从你的应用程序调用BeanShell去动态的执行Java代码或是为你的应用程序提供脚本扩展。相反,你也可以...
在Java编程语言中,我们经常需要在运行时动态地执行代码。这在处理用户输入、配置文件或与其他语言交互时非常有用。一个常见的库,用于实现这种动态执行能力的是BeanShell(bsh-2.0b4.jar)。BeanShell是一个小型、...
先按 说明.txt 中的方案解决 如果替换jar包后导致错误,可以用如下...把项目上“bsh-2.0b”原文件中的 \bsh\servlet\BshServlet.class 文件删除,重启服务 影响版本:NC57 / NC63 / NC65 / NCC1903 / NCC1909 / NCC2005
通过BeanShell,开发者可以在运行时动态执行Java代码,这在调试、脚本编写和应用程序扩展等方面非常有用。 #### 二、安装与配置 1. **下载BeanShell**: - 访问官方网站:`http://beanshell.org/` 下载最新的JAR...
在Java中,如果你需要动态执行代码,你可能需要借助于Java的反射API或者使用Java Compiler API来编译和运行Java源代码。下面是一些处理代码评估问题的常见方法: 1. **Java反射API**: 反射API允许在运行时检查类...
1. **动态执行Java代码**:Beanshell 允许用户在运行时编写和执行Java代码,无需编译过程,提高了开发效率。 2. **脚本环境**:提供了类似Bash或Perl的交互式脚本环境,支持变量、函数、控制结构等。 3. **Java对象...
这个库特别适合进行快速原型开发、测试和调试,因为它无需编译就能直接运行代码,极大地提高了开发效率。 `bsh-2.0b4.jar` 文件包含了完整的 Beanshell 实现,包括解释器、类管理器和其他必要的支持组件。这个库...
Java解释器的任务就是读取这些字节码,解析并执行其中的指令,完成程序的运行。 Java解释器的工作流程大致如下: 1. **加载类文件**:当程序需要使用某个类时,解释器首先会找到对应的`.class`文件,并将其加载到...
- **动态执行:** BeanShell 可以在运行时动态解析和执行Java代码,这对于测试、调试和快速原型设计非常有用。 - **脚本支持:** 它支持类似于JavaScript的脚本语法,允许开发者编写简洁的控制流程和表达式。 - *...
8. **bsh**: BeanShell是Java的一个小型、灵活的脚本环境,允许在运行时动态执行Java代码,可以用于调试、测试或者快速实现原型。 9. **commons**: 这可能是对Apache Commons项目的泛指,这是一个包含大量实用工具...
BeanShell是一款轻量级的Java脚本引擎,它允许用户在运行时动态地编写和执行Java代码。作为一个开源项目,BeanShell在IT行业中被广泛应用于快速原型开发、测试、脚本自动化以及教学等场景。其灵活性和易用性是它的一...