java 脚本引擎Rhino执行js代码和文件

匿名 (未验证) 提交于 2019-12-02 21:52:03

测试js脚本引擎

public class helloworld {  public static void main(String[] args) throws Exception  {     //获得脚本引擎对象     ScriptEngineManager sem=new ScriptEngineManager();     ScriptEngine engine=sem.getEngineByName("javascript");      //定义变量,会存储到引擎上下文种,java和js都能取到     engine.put("msg","good man");     String  str="var user= {name:'我',age:18,schools:['高中','大学']};";     str+="print(user.name);";      //执行脚本     engine.eval(str);     //js代码修改     engine.eval("msg = 'i am a good man';");     //java获取值     System.out.println(engine.get("msg"));      //定义js函数     engine.eval("function add(a,b){var sum=a+b;return sum;}");     //执行js函数     //取得调用接口     Invocable jsInvoke =(Invocable)engine; //Invocable是ScriptEngine的一个接口,调用函数需要强转     //执行js函数     Object result1=jsInvoke.invokeFunction("add", new Object[]{113,20});     System.out.println(result1);      //导入其他java包,使用其他包种的java类     String jsCode=" var list=java.util.Arrays.asList([\"小学\",\"大学\"]);";     engine.eval(jsCode);      List<String> list2=(List<String>)engine.get("list");      for(String temp:list2)     {         System.out.println(temp);     }      //执行一个js文件(置于src下即可)     URL url=helloworld.class.getClassLoader().getResource("nn.js"); //类加载器,返回url     FileReader fr=new FileReader(url.getPath());     engine.eval(fr);     fr.close();     } }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!