java调用JavaScript方法

版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/qq_42920045/article/details/82670762

获得 JavaScript 脚本引擎

ScriptEngineManager scriptEngineManager = new ScriptEngineManager();

ScriptEngine engine = scriptEngineManager.getEngineByName("javascript");

定义获取变量

// 定义变量
engine.put("msg", "this is msg");

// 获取变量
System.out.println(engine.get("msg"));

定义并执行方法

// 定义函数
engine.eval("function add (num1, num2) {return num1 + num2;}");

// engine 该类同样实现了 Invocable 接口 : 转型过去拿到 API
Invocable invocable = (Invocable) engine;

// 调用函数
Object invokeFunction = invocable.invokeFunction("add", new Object[] {10, 10});
System.out.println(invokeFunction);

执行本地 JavaScript 代码

URL resource = JavaScriptDemo.class.getClassLoader().getResource("JavaScriptDemo.js");

FileReader fileReader = new FileReader(resource.getPath());
engine.eval(fileReader);
fileReader.close();

执行复杂的算数表达式

Object eval = engine.eval("10 * 10 + 10");
System.out.println(eval);

猜你喜欢

转载自blog.csdn.net/qq_42920045/article/details/82670762