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);}}
ScriptEngine案例
最新推荐文章于 2026-03-29 03:10:36 发布
本文展示了一个Java程序如何通过ScriptEngine与JavaScript进行交互的例子。包括变量传递、调用JavaScript函数及执行打印操作。

466

被折叠的 条评论
为什么被折叠?



