package com.rpa.client.commons.util; import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; /** * java js引擎函数调用工具类 * Created by duyizhen on 2018/4/25. */ public class JavaScriptEngineUtil { /** * 调用js内部的函数 * @param javaScriptCodeString js源码 * @param functionName 函数名称 * @param params 函数需要传递的参数 * @return */ public static Object executeJavaScriptFunctionByName(String javaScriptCodeString, String functionName, Object... params){ // 创建返回对象 Object resultObject = null; // 创建java内嵌引擎管理员 ScriptEngineManager manager = new ScriptEngineManager(); // 获取其中的js引擎 ScriptEngine javaScriptEngine = manager.getEngineByName("js"); try { // 在引擎中加载js代码 javaScriptEngine.eval(javaScriptCodeString); // 获取加载代码之后的引擎引用 Invocable invocable = (Invocable) javaScriptEngine; // 根据js代码中的方法来调用 js函数 并获取返回值 resultObject = invocable.invokeFunction(functionName, params); } catch (ScriptException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } return resultObject; } }
java 执行js代码
最新推荐文章于 2024-06-28 09:52:57 发布