java 操作调用js

来源:互联网 发布:新浪云怎么绑定域名 编辑:程序博客网 时间:2024/05/16 06:47

1/直接调用:

ScriptEngineManager manager=new ScriptEngineManager();ScriptEngine engine=manager.getEngineByName("javascript");try {engine.eval("var a=3; var b=4;print (a+b)");} catch (ScriptException e) {e.printStackTrace();}


2/调用js文件并传参

ScriptEngineManager manager=new ScriptEngineManager();ScriptEngine engine=manager.getEngineByName("javascript");try {FileReader reader = new FileReader("./src/ex.js");engine.eval(reader);Invocable invoke = (Invocable)engine;Double c = (Double)invoke.invokeFunction("ss", 2, 3);System.out.println(c);} catch (Exception e) {e.printStackTrace();}

ex.js文件

function ss(a, b) {  c = a * b;  return c; }


3/构造js

public class Ctest {interface AA{Double Hello();}public static void main(String[] args) {ScriptEngineManager manager=new ScriptEngineManager();ScriptEngine engine=manager.getEngineByName("javascript");try {engine.eval("function Hello()  " + "{var a=1;var b=2;return a+b; }" );Invocable invoke = (Invocable)engine;AA a=invoke.getInterface(AA.class);Double res=a.Hello();System.out.println(res);} catch (Exception e) {e.printStackTrace();}}}



0 0
原创粉丝点击