package com.terra.system.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;
|
}
|
}
|
}
|