Java执行JavaScript代码
程序员文章站
2024-03-09 10:47:35
我们要在java中执行javascriptmethods.js中的execute(s1,s2)方法,javascriptmethods.js文件内容如下:
fun...
我们要在java中执行javascriptmethods.js中的execute(s1,s2)方法,javascriptmethods.js文件内容如下:
function execute(s1, s2){ return s1 + s2; }
首先需要定义一个接口,这个接口中给出与要执行的javascript方法一样的方法签名,我们定义接口methods,它的内容如下:
/** * 接口中的方法签名必须与要执行的javascript方法一致 * @author yuncong * */ public interface methods { public string execute(string s1,string s2); }
然后,就可以用脚本引擎执行javascriptmethods.js中execute(s1,s2)方法了,具体内容写在下面的executescript类中的:
import java.io.filereader; import javax.script.invocable; import javax.script.scriptengine; import javax.script.scriptenginemanager; public class executescript { public static void main(string[] args) { scriptenginemanager manager = new scriptenginemanager(); scriptengine engine = manager.getenginebyname("js"); try { string path = executescript.class.getresource("").getpath(); system.out.println(path); // filereader的参数为所要执行的js文件的路径 engine.eval(new filereader(path + "javascriptmethods.js")); if (engine instanceof invocable) { invocable invocable = (invocable) engine; methods executemethod = invocable.getinterface(methods.class); system.out.println(executemethod.execute("li", "yuncong")); } } catch (exception e) { e.printstacktrace(); } } }
运行executescript类,输出如下:
/c:/users/yuncong/git/login/target/classes/executescript/ liyuncong
以上就是本文的全部内容,希望对大家的学习有所帮助。