Java代码中使用js脚本示例
public class TestEngine {
public static void main(String[] args) throws Exception {
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine engine = sem.getEngineByName("js");
engine.put("user","Jack");
System.out.println(engine.get("user"));
String str = "var user = {name:'Mic',age:26,school:['清华大学','北京大学','西湖大学']};";
str += "print(user.name)";
engine.eval(str);
engine.eval("var user = 'My name is Mic.'");
engine.eval("var animal = 'Its a Dog'");
System.out.println("user:" + engine.get("user") + " **** animal:" + engine.get("animal"));
engine.eval("function add(a,b){var sum = a + b;return sum;}");
Invocable invocable = (Invocable) engine;
Object result = invocable.invokeFunction("add",new Object[]{10,20});
System.out.println(result);
String jsCode = "var list = java.util.Arrays.asList([\"清华大学\",\"北京大学\",\"西湖大学\"])";
engine.eval(jsCode);
List<String> list = (List<String>)engine.get("list");
list.forEach( e -> System.out.println(e));
ClassLoader classLoader = TestEngine.class.getClassLoader();
InputStream inputStream = classLoader.getResourceAsStream("a.js");
InputStreamReader isr = new InputStreamReader(inputStream);
engine.eval(isr);
}
}