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();
}
就这么简单,就可以了,还是很简单的。