java中使用js函数

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很有用,好多高级功能可以用到。

原文地址:https://www.cnblogs.com/booke/p/3199600.html