java运行脚本
程序员文章站
2022-06-06 16:09:25
...
如何在java利用Rhino引擎中运行脚本?
- 基本的执行
//1.获得引擎脚本
ScriptEngineManager scriptEngine = new ScriptEngineManager();
ScriptEngine javascript = scriptEngine.getEngineByName("javascript");
//2.定义变量,存储到引擎上下文
javascript.put("msg", "hello world");//可以在js里面获取到msg
String str = "var user={name:'chen',age:12};";
str += "print(user.name);";
str += "print(msg)";
//3.执行
javascript.eval(str);//chen -hello world-
javascript.eval("msg='nihao a '");//javascript可以操作
javascript.eval(str);//chen-nihao a
System.out.println(javascript.get("msg"));//java可以操作//nihao a
- 执行函数
//定义函数
javascript.eval("function add(a,b){return a+b;}");
Invocable invocable = (Invocable) javascript;
Object add = invocable.invokeFunction("add", new Object[]{1, 2});
System.out.println(add);//3.0
3.在脚本中导入java包
//String jsCode = "importPackage(java.util); var list=Arrays.asList([\"nihao\",\"hello\"]);";//1.8后不再适用
String jsCode = "var list=java.util.Arrays.asList([\"nihao\",\"hello\"]);";
javascript.eval(jsCode);
List<String> stringList = (List<String>) javascript.get("list");//取值
stringList.forEach(System.out::println);//nihao hello
//更加详细,可以学习Rhino的语法
- 读取外部文件
URL url = RunJavascript.class.getClassLoader().getResource("demo.js");
FileReader fr = new FileReader(url.getPath());
javascript.eval(fr);//invoke js file:7
//关闭流
上一篇: ubuntu服务器有线和无线网络配置
下一篇: java开发单词的唯一缩写(哈希)