在做项目中有时候需要用到Java调用js文件执行相应的方法
在JDK1.6添加了新的ScriptEngine类,允许用户直接执行js代码。
import org.junit.Test; import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; /** * @author ceshi * @Title: JunitTestJS * @ProjectName ceshi * @Description: java 运行js * @date 2018/7/1016:35 */ public class JunitTestJS { @Test public void test(){ ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("javascript"); try{ engine.eval("function add(a,b){" + "return a+b;" + "}"); if (engine instanceof Invocable) { Invocable in = (Invocable) engine; System.out.println(in.invokeFunction("add",1,1)); } }catch(Exception e){ e.printStackTrace(); } } }
ps: engine.eval()也可以读入js文件路径来执行js方法
String jsName = "test.js"; //读取js FileReader fileReader = new FileReader(jsName ); //执行指定脚本 engine.eval(fileReader);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架