脚本引擎执行js代码

一.介绍

1.是jdk6.0以后的新增的功能

2.使得java程序通过一套固定的接口与各种脚本引擎交互,使可以在java平台可以调用各种脚本语言

3.把一些复杂异变的业务逻辑交给脚本语言去处理,提高效率

二.

@Test
	public void test1() throws ScriptException, NoSuchMethodException, FileNotFoundException {
		//获得脚本引擎对象
		ScriptEngineManager manager=new ScriptEngineManager();
		ScriptEngine engine=manager.getEngineByName("js");
		
		//定义变量存储到引擎上下文,则该变量在java/js中都能获取
		engine.put("value", 1);           
		engine.eval("value=2;");    //js代码改变value值
		System.out.println(engine.get("value"));    //java代码打印value值
		
		
		//执行js代码
		String s="var user= {name:'hwx', age:18};";
		s+="print(user.name);";
		engine.eval(s);
		
		//定义js函数
		engine.eval("function add(a,b){var sum=a+b;return sum;};");
		//执行js函数
		Invocable invoke=(Invocable)engine;
		double x=(double)invoke.invokeFunction("add",1,2);   //参数为函数名,Object可变参数
		System.out.println(x);
		
		//导入其他java包,使用其他包中Java类
		s="importPackage(java.util); var list=Arrays.asList([1,2,3]);";
		engine.eval(s);
		List<Integer> list=(List<Integer>)engine.get("list");
		System.out.println(list);
		
		
		//执行一个js文件
		URL url=demo1.class.getClassLoader().getResource("a.js");
		FileReader reader=new FileReader(url.getPath());
		engine.eval(reader);
		
		
		
	}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值