Java那些事之执行js
这一阵一直在使用java,其中遇到了一个有意思的事情。就是要在java中执行一段js代码。之前从来没有用过,只知道C#是可以做到的,当然java也一定可以了。于是去网上逛了一下,找到了比较不错的方法。
下面给大家分享一下吧,各位要是有更好的方法,一定要教教我~
比如我要执行本地工程目录下data文件夹下test.js这里面的test函数的代码,那么首先我要把这个文件准备好,然后就可以写代码啦
代码如下:
/**
* 执行js函数,得到需要的值的值
* @param paras
* @return
* @throws ScriptException
* @throws FileNotFoundException
* @throws NoSuchMethodException
*/
public static String ExcuteJs(String paras) throws ScriptException,
FileNotFoundException, NoSuchMethodException
{
ScriptEngineManager engineManager = new ScriptEngineManager();
ScriptEngine engine = engineManager.getEngineByName("JavaScript"); //得到脚本引擎
engine.eval(new java.io.FileReader("data/test.js"));
Invocable inv = (Invocable)engine;
Object a = inv.invokeFunction("test", paras );
CheckMethods.PrintDebugMessage(a.toString());
return a.toString();
}
* 执行js函数,得到需要的值的值
* @param paras
* @return
* @throws ScriptException
* @throws FileNotFoundException
* @throws NoSuchMethodException
*/
public static String ExcuteJs(String paras) throws ScriptException,
FileNotFoundException, NoSuchMethodException
{
ScriptEngineManager engineManager = new ScriptEngineManager();
ScriptEngine engine = engineManager.getEngineByName("JavaScript"); //得到脚本引擎
engine.eval(new java.io.FileReader("data/test.js"));
Invocable inv = (Invocable)engine;
Object a = inv.invokeFunction("test", paras );
CheckMethods.PrintDebugMessage(a.toString());
return a.toString();
}
就这么简单,就可以了,还是很简单的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架