如何在java中调用js方法

[java] view plain copy

    /*   
     * 加载脚本引擎,并在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] view plain copy

    /*   
     * 在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] view plain copy

    /*   
     * 演示如何将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] view plain copy

    /*   
     * 演示如何在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] view plain copy

    /*   
     * 加载脚本引擎,并在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] view plain copy

    /*   
     * 在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] view plain copy

    /*   
     * 演示如何将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] view plain copy

    /*   
     * 演示如何在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] view plain copy

    /*   
     * 加载脚本引擎,并在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] view plain copy

    /*   
     * 在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] view plain copy

    /*   
     * 演示如何将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] view plain copy

    /*   
     * 演示如何在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] view plain copy

    /*   
     * 加载脚本引擎,并在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] view plain copy

    /*   
     * 在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] view plain copy

    /*   
     * 演示如何将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] view plain copy

    /*   
     * 演示如何在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();     
             
    }    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值