JDK6已经支持脚本语言了。写两个测试js的代码。
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import org.junit.Test;
public class JS {
@Test
public void js() {
// 创建脚本引擎管理器
ScriptEngineManager sem = new ScriptEngineManager();
// 创建一个处理JavaScript的脚本引擎
ScriptEngine engine = sem.getEngineByExtension("js");
try {
// 执行js公式
engine.eval("if(6>5){flag=true;}else{flag =false;}");
} catch (ScriptException ex) {
ex.printStackTrace();
}
// 看看我们预期的反馈结果 true
System.out.println((engine.get("flag")));
// 2.创建方法并进行脚本调用(这个是我比较喜欢的一种方式)
}
@Test
public void js2() throws ScriptException, NoSuchMethodException {
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine engine = sem.getEngineByName("JavaScript");
// 创建脚本
String script = "function max(first,second) "
+ "{ return (first > second) ?true:false;}";
// 执行脚本
engine.eval(script);
Invocable inv = (Invocable) engine;
// 执行方法并传递参数
Object obj = inv.invokeFunction("max", "0", "1");
// 打印结果
System.out.println((Boolean) obj == false);
}
}