初探JDK6 javax.script (javascript解析)

来源:互联网 发布:马丽 知乎 编辑:程序博客网 时间:2024/05/19 04:54
  JDK6已经发布很久了,很早就听过他已经支持脚本语言了,不过一直没有时间尝试,今天偷闲试了一下,感觉不错。
  javax.script包它是Java新增的操作脚本的工具包,利用它我们可以对脚本语言进行操作(本例仅是针对javascript)
  1.用引擎直接解析脚本公式
  //创建脚本引擎管理器
  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.创建方法并进行脚本调用(这个是我比较喜欢的一种方式)
  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很有用,好多高级功能可以用到。
  不过我还没有深入,谁如果有深入研究请赐教。
原创粉丝点击