管道基础大数据平台系统开发-【后端】-Server
13693261870
2024-02-29 36b2f13fff583e0dbc94ee40e9fe4ae6e75af4e0
src/main/java/com/lf/server/helper/JsHelper.java
@@ -6,6 +6,8 @@
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import java.io.File;
import java.io.FileReader;
/**
 * JS帮助类
@@ -19,24 +21,27 @@
    /**
     * 调用JS方法
     */
    public Object callJsFn() {
    public static Object callJsFn(String jsFile, String function, String str) {
        try {
            // 创建 JavaScript 引擎管理器
            ScriptEngineManager manager = new ScriptEngineManager();
            // 获取 JavaScript 引擎
            ScriptEngine engine = manager.getEngineByName("javascript");
            // 定义要执行的 JavaScript 脚本
            String script = "function addNumbers(a, b){ return a + b; }";
            File f = new File(jsFile);
            if (!f.exists() || f.isDirectory()) {
                return null;
            }
            FileReader reader = new FileReader(f);
            // 编译并运行 JavaScript 脚本
            engine.eval(script);
            engine.eval(reader);
            // 调用 JavaScript 函数
            Invocable invocable = (Invocable) engine;
            Object obj = invocable.invokeFunction("addNumbers", 2, 3);
            return obj;
            return invocable.invokeFunction(function, str);
        } catch (Exception ex) {
            log.error(ex.getMessage(), ex);
            return null;