在Java中运行javascript脚本示例

在Java中运行javascript脚本示例

import javax.script.Invocable;   
import javax.script.ScriptEngine;   
import javax.script.ScriptEngineManager;   
import javax.script.ScriptException;   

/**
 * 
 * @author zhuXun
 * @declare 关于在Java中调用javascript的示例
 *
 */
public class TestJavaScript {   
  
    public static void main(String[] args) {   
        ScriptEngineManager sem = new ScriptEngineManager();   
        ScriptEngine se = sem.getEngineByName("javascript");   
        try {   
            //直接调用JAVASCRIPT语句   
            se.eval("println('111');");   
            String tmpstr = "test string";   
            se.eval(("println('" + tmpstr + "');"));   
  
            //调用无参数方法JAVASCRIPT函数   
            se.eval("function sayHello() {"  
                    + "  print('Hello '+strname+'!');return 'my name is '+strname;" + "}");   
            Invocable invocableEngine = (Invocable) se;   
            se.put("strname", "testname");   
            String callbackvalue=(String) invocableEngine.invokeFunction("sayHello");   
            System.out.println(callbackvalue);   
               
            //调用有参数JAVASCRIPT函数   
            se.eval("function sayHello2(strname2) {"  
                    + "  print('Hello '+strname+'!');return 'my name is '+strname2;" + "}");   
            callbackvalue=(String)invocableEngine.invokeFunction("sayHello2", "testname2");   
            System.out.println(callbackvalue);   
               
        } catch (ScriptException e) {   
            e.printStackTrace();   
        } catch (NoSuchMethodException e) {   
            e.printStackTrace();   
        }   
    }   
}  

输出结果如下:

111
test string
Hello testname!my name is testname
Hello testname!my name is testname2


你可能感兴趣的:(在Java中运行javascript脚本示例)