package com.lf.server.helper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import java.io.File; import java.io.FileReader; /** * JS帮助类 * * @author WWW * @date 2024-02-29 */ public class JsHelper { private final static Log log = LogFactory.getLog(JsHelper.class); /** * 调用JS方法 */ public static Object callJsFn(String jsFile, String function, String str) { try { // 创建 JavaScript 引擎管理器 ScriptEngineManager manager = new ScriptEngineManager(); // 获取 JavaScript 引擎 ScriptEngine engine = manager.getEngineByName("javascript"); File f = new File(jsFile); if (!f.exists() || f.isDirectory()) { return null; } FileReader reader = new FileReader(f); // 编译并运行 JavaScript 脚本 engine.eval(reader); // 调用 JavaScript 函数 Invocable invocable = (Invocable) engine; return invocable.invokeFunction(function, str); } catch (Exception ex) { log.error(ex.getMessage(), ex); return null; } } }