当前位置: 移动技术网 > IT编程>开发语言>Java > java编程中实现调用js方法分析

java编程中实现调用js方法分析

2019年07月19日  | 移动技术网IT编程  | 我要评论

素爱mt15i,夜色撩人 电影,西子奥的斯电梯尺寸

本文实例讲述了java编程中实现调用js方法。分享给大家供大家参考,具体如下:

/*
* 加载脚本引擎,并在java中调用js方法
*/
public void test2()
{
     scriptenginemanager manager = new scriptenginemanager();
     scriptengine engine = manager.getenginebyname("javascript");
     try {
       string str="2&1";
       double d = (double) engine.eval(str);
       integer i=d.intvalue();
       system.out.println(i);
     } catch (scriptexception ex) {
      ex.printstacktrace();
     }
}

/*
* 在java中调用js,jdk1.6中有加载js引擎类,然后由它来调用js方法。
* 并通过jdk平台给script的方法中的形参赋值
*/
public void test(string name)
{
    scriptenginemanager sem = new scriptenginemanager();
    /*
     *sem.getenginebyextension(string extension)参数为js
     sem.getenginebymimetype(string mimetype) 参数为application/javascript 或者text/javascript
     sem.getenginebyname(string shortname)参数为js或javascript或javascript
     */
    scriptengine se = sem.getenginebyname("js");
    try
    {
     string script = "function say(){ return 'hello,'"+name+"; }";
     se.eval(script);
     invocable inv2 = (invocable) se;
     string res=(string)inv2.invokefunction("say",name);
     system.out.println(res);
    }
    catch(exception e)
    {
      e.printstacktrace();
    }
}

/*
* 演示如何将java中对象作为js中全局变量,同时演示将file类赋给脚本语言,并获得其属性。
*/
public void testscriptvariables()
{
    scriptenginemanager sem=new scriptenginemanager();
    scriptengine engine=sem.getenginebyname("js");
    file file=new file("c://1.txt");
    engine.put("f", file);
    try {
      engine.eval("println('path:'+f.getpath())");//无法使用alert方法
    } catch (scriptexception e) {
      e.printstacktrace();
    }
}

/*
* 演示如何在java中如何通过线程来启动一个js方法
*/
public void testscriptinterface() throws scriptexception
{
    scriptenginemanager sem=new scriptenginemanager();
    scriptengine engine=sem.getenginebyname("js");
    string script="var obj=new object();obj.run=function(){println('test thread')}";
    engine.eval(script);
    object obj=engine.get("obj");//获取js中对象
    invocable inv=(invocable)engine;
    runnable r=inv.getinterface(obj,runnable.class);
    thread t=new thread(r);
    t.start();
}

更多关于java算法相关内容感兴趣的读者可查看本站专题:《java字符与字符串操作技巧总结》、《java数组操作技巧总结》、《java数学运算技巧总结》、《java编码操作技巧总结》和《java数据结构与算法教程

希望本文所述对大家java程序设计有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网