java编程中实现调用js方法分析
本文实例讲述了java编程中实现调用js方法。分享给大家供大家参考,具体如下:
/* *加载脚本引擎,并在java中调用js方法 */ publicvoidtest2() { ScriptEngineManagermanager=newScriptEngineManager(); ScriptEngineengine=manager.getEngineByName("javascript"); try{ Stringstr="2&1"; Doubled=(Double)engine.eval(str); Integeri=d.intValue(); System.out.println(i); }catch(ScriptExceptionex){ ex.printStackTrace(); } }
/* *在java中调用js,jdk1.6中有加载js引擎类,然后由它来调用js方法。 *并通过JDK平台给script的方法中的形参赋值 */ publicvoidtest(Stringname) { ScriptEngineManagersem=newScriptEngineManager(); /* *sem.getEngineByExtension(Stringextension)参数为js sem.getEngineByMimeType(StringmimeType)参数为application/javascript或者text/javascript sem.getEngineByName(StringshortName)参数为js或javascript或JavaScript */ ScriptEnginese=sem.getEngineByName("js"); try { Stringscript="functionsay(){return'hello,'"+name+";}"; se.eval(script); Invocableinv2=(Invocable)se; Stringres=(String)inv2.invokeFunction("say",name); System.out.println(res); } catch(Exceptione) { e.printStackTrace(); } }
/* *演示如何将java中对象作为js中全局变量,同时演示将file类赋给脚本语言,并获得其属性。 */ publicvoidtestScriptVariables() { ScriptEngineManagersem=newScriptEngineManager(); ScriptEngineengine=sem.getEngineByName("js"); Filefile=newFile("c://1.txt"); engine.put("f",file); try{ engine.eval("println('path:'+f.getPath())");//无法使用alert方法 }catch(ScriptExceptione){ e.printStackTrace(); } }
/* *演示如何在java中如何通过线程来启动一个js方法 */ publicvoidtestScriptInterface()throwsScriptException { ScriptEngineManagersem=newScriptEngineManager(); ScriptEngineengine=sem.getEngineByName("js"); Stringscript="varobj=newObject();obj.run=function(){println('testthread')}"; engine.eval(script); Objectobj=engine.get("obj");//获取js中对象 Invocableinv=(Invocable)engine; Runnabler=inv.getInterface(obj,Runnable.class); Threadt=newThread(r); t.start(); }
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java字符与字符串操作技巧总结》、《Java数组操作技巧总结》、《Java数学运算技巧总结》、《Java编码操作技巧总结》和《Java数据结构与算法教程》
希望本文所述对大家java程序设计有所帮助。