BeanShell 跟jdk js引擎使用记录

        今天看到http://www.oschina.net/question/1024977_112313 这个帖子,原来自己是使用beanshell解决这个问题,看到有人回答用js引擎这个东西,也都拿来试试看怎么玩这个东西,记录之。

        一般运行这种公式,可以用来做公式定义器,获取是规则引擎之类的,感觉还是挺有用的,挺好玩的。

        beanShell是这样玩的:

    

public static void testBeanShell() throws EvalError {
		Interpreter interpreter = new Interpreter();
		//设置参数
		interpreter.set("param", "12312-");
		//运行脚本
		Object result = interpreter.eval(" int k=1+2*3+3/4-2*6/3-2+4;"
				+ "System.out.println(param);" + "return k ");
		System.out.println(result);
	}
        js引擎是这么玩:


public static void testJsEngine() throws ScriptException,
			NoSuchMethodException {

		//javascript引擎获取
		ScriptEngineManager manager = new ScriptEngineManager();
		ScriptEngine engine = manager.getEngineByName("js");

		Object result = 1;
		String script = " function test(params){var k =1+2*3+3/4-2*6/3-2+4;println(params+k); return k; }";
		//		编译
		engine.eval(script);
		//		调用对应function
		Invocable inv = (Invocable) engine;
		Object res = inv.invokeFunction("test", result);
		//		输出返回值
		System.out.println(res);
	}

你可能感兴趣的:(java,beanShell,ScriptEngine)