在Java中使用javascript函数

来源:互联网 发布:怎样注册淘宝会员 编辑:程序博客网 时间:2024/04/29 09:24

 

JDK6已经发布很久了,很早就听过他已经支持脚本语言了,不过一直没有时间尝试,今天偷闲试了一下,感觉不错。

  javax.script包它是Java新增的操作脚本的工具包,

  利用它我们可以对脚本语言进行操作(本例仅是针对javascript)

 

  1.用引擎直接解析脚本公式

  Java代码

  //创建脚本引擎管理器

  ScriptEngineManager sem = new ScriptEngineManager();

  //创建一个处理JavaScript的脚本引擎

  ScriptEngine engine = sem.getEngineByExtension("js");

  try{

  //执行js公式

  engine.eval("if(6>5){flag=true;}else{flag =false;}");

  }catch(ScriptException ex){

  ex.printStackTrace();

  }

  //看看我们预期的反馈结果 true

  System.out.println((engine.get("flag")));

 

  2.创建方法并进行脚本调用(这个是我比较喜欢的一种方式)

  Java代码

  ScriptEngineManager sem = new ScriptEngineManager();

  ScriptEngine engine = sem.getEngineByName("JavaScript");

  //创建脚本

  String script = "function max(first,second) "

  + "{ return (first > second) ?true:false;}";

  //执行脚本

  engine.eval(script);

  Invocable inv = (Invocable) engine;

  //执行方法并传递参数

  Object obj = inv.invokeFunction("max", "0", "1");

  //打印结果

  System.out.println((Boolean)obj==false);

  这里据说Invoable很有用,好多高级功能可以用到。

 

原创粉丝点击