1.java的脚本引擎
- 脚本引擎:使得java应用程序可以通过一套固定的接口与各种脚本引擎交互,从而
达到java平台上调用各种脚本语言的目的。
2.通过代码去执行脚本代码·
- 获得脚本引擎的对象
ScriptEngineManager sem=new ScriptEngineManager(); - 建立脚本引擎
ScriptEngine engine=sem.getEngineByName("javascript"); 其中参数为要建立的脚本语言
1.在脚本引擎中加入键值对
engine.put("msg", "People are important to face difficulties");
2.执行脚本语言
String str="var user= {name:'xiaofeng',age:18,School:'qinghua'};";
str+="print(user.name);";
engine.eval(str);
3.改变脚本引擎中的内容
engine.eval("msg='People are important to face difficulties 111'");
System.out.println(engine.get("msg"));
4.执行脚本语言的函数
1.先执行脚本语言的函数: engine.eval("function add(a,b){ var sum=a+b;return sum;}");
2.取得调用接口 :Invocable jsInvoke=(Invocable)engine; //将engine转化为Invocable接口对象
3.调用函数 Object result= jsInvoke.invokeFunction("add",new Object[] {13,20});其中参数两个 第一个为方法的名字 第二个为函数的参数
5.将Java中的包在脚本语言js中执行
1.先写出脚本语言代码
String jsCode = "importPackage(java.util); var list=Arrays.asList(["北疆","北疆1","北疆2"]);";
2.执行
engine.eval(jsCode);
3.在Java中将其写出
List<String> p= (List<String>) engine.get("list");
6.执行js文件(我们将其放在src下)
1.URL url=Demo1.class.getClassLoader().getResource("a.js");
2.通过字节流去读FileReader
FileReader p=new FileReader(url.getpath);
enginer.eval(p);
fr.close