package org.script; import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public class ScriptEngineManagerDemo { public static void main(String[] args) { ScriptEngineManager sem = new ScriptEngineManager(); /*script引擎管理*/ ScriptEngine se = sem.getEngineByName("javascript"); /*script引擎*/ try { se.eval(" var strname = 'Key' ") ; /* 执行一段script */ se.eval("function sayHello( ) { " + " print('Hello '+strname+'!');return 'my name is '+strname;" + "}"); /* 添加一个方法*/ Invocable invocableEngine = (Invocable) se ; String callbackvalue=(String) invocableEngine.invokeFunction("sayHello" ); /*调用方法中的函数*/ System.out.println( callbackvalue ) ; /** 打印返回值*/ } catch (Exception e) { e.printStackTrace(); } } }
输出结果: