ScriptEngine案例

import javax.script.Invocable;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;/** * ScriptEngine案例(java6的新特性) * java和js交互 * @author rhy * @2017-3-29 上午9:52:43 * @version v1.0 */public class ScriptEngineTest {public static void main(String[] args) throws Exception {ScriptEngineManager sem = new ScriptEngineManager();ScriptEngine engine = sem.getEngineByName("javascript");engine.put("msg", "Just is test");String str = "msg += '!!!';var user = {name:'tom',age:23,hobbies:['football','basketball']};var name = user.name;var hb = user.hobbies[1]";engine.eval(str);String msg = (String) engine.get("msg");String name = (String)engine.get("name");String hb = (String)engine.get("hb");System.out.println(msg);System.out.println(name +"===="+ hb);engine.eval("function add(a,b){c = a + b; return c;}");Invocable invocable = (Invocable)engine;Object object = invocable.invokeFunction("add", new Object[]{1,2});System.out.println(object);Adder adder = invocable.getInterface(Adder.class);int result = adder.add(3, 4);System.out.println(result);engine.eval("function run(){print('www.java2s.com');}");Invocable invo =(Invocable)engine;Runnable runnable = invo.getInterface(Runnable.class);Thread t = new Thread(runnable);t.start();t.join();}public interface Adder{int add(int a,int b);}}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值