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(); } }
阅读原文