Java执行js脚本
王子琪
2023-02-17 04:27:30
共 1 个回答
谭抒怀
2023-02-21 03:30:28
//声明是什么类型的脚本ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("js");
//编写js方法体engine.eval("function getTest(){return 520;}");
//执行js脚本。Invocable invocable = (Invocable) engine; invocable.invokeFunction("getTest");
完整方法:public static void main(String[] args) {     //声明是什么类型的脚本     ScriptEngineManager manager = new ScriptEngineManager();     ScriptEngine engine = manager.getEngineByName("js");     //编写js方法体     try {         engine.eval("function getTest(){return 520;}");         //执行js脚本。         Invocable invocable = (Invocable) engine;         Object object = invocable.invokeFunction("getTest");         System.out.println(object);     } catch (Exception e) {         e.printStackTrace();     }}
可以读取文件路径的方式来加载js。@Test public void jsTest() {     //声明是什么类型的脚本     ScriptEngineManager manager = new ScriptEngineManager();     ScriptEngine engine = manager.getEngineByName("js");     //编写js方法体     try {         org.springframework.core.io.Resource rnavJs = new ClassPathResource("/static/nav.js");         engine.eval(new FileReader(rnavJs.getFile()));         //执行js脚本。         Invocable invocable = (Invocable) engine;         Object object = invocable.invokeFunction("myPrint", "wowowo");         System.out.println(object);     } catch (Exception e) {         e.printStackTrace();     } }
阅读原文