网站建设资讯

NEWS

网站建设资讯

java脚本引擎Rhino执行js代码和文件-创新互联

测试js脚本引擎

创新互联拥有网站维护技术和项目管理团队,建立的售前、实施和售后服务体系,为客户提供定制化的成都网站制作、成都网站建设、网站维护、绵阳电信机房机柜租用解决方案。为客户网站安全和日常运维提供整体管家式外包优质服务。我们的网站维护服务覆盖集团企业、上市公司、外企网站、成都做商城网站、政府网站等各类型客户群体,为全球上千多家企业提供全方位网站维护、服务器维护解决方案。
public class helloworld {

public static void main(String[] args) throws Exception  {
    //获得脚本引擎对象
    ScriptEngineManager sem=new ScriptEngineManager();
    ScriptEngine engine=sem.getEngineByName("javascript");

    //定义变量,会存储到引擎上下文种,java和js都能取到
    engine.put("msg","good man");
    String  str="var user= {name:'我',age:18,schools:['高中','大学']};";
    str+="print(user.name);";

    //执行脚本
    engine.eval(str);
    //js代码修改
    engine.eval("msg = 'i am a good man';");
    //java获取值
    System.out.println(engine.get("msg"));

    //定义js函数
    engine.eval("function add(a,b){var sum=a+b;return sum;}");
    //执行js函数
    //取得调用接口
    Invocable jsInvoke =(Invocable)engine; //Invocable是ScriptEngine的一个接口,调用函数需要强转
    //执行js函数
    Object result1=jsInvoke.invokeFunction("add", new Object[]{113,20});
    System.out.println(result1);

    //导入其他java包,使用其他包种的java类
    String jsCode=" var list=java.util.Arrays.asList([\"小学\",\"大学\"]);";
    engine.eval(jsCode);

    List list2=(List)engine.get("list");

    for(String temp:list2)
    {
        System.out.println(temp);
    }

    //执行一个js文件(置于src下即可)
    URL url=helloworld.class.getClassLoader().getResource("nn.js"); //类加载器,返回url
    FileReader fr=new FileReader(url.getPath());
    engine.eval(fr);
    fr.close();    
}
}

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


当前题目:java脚本引擎Rhino执行js代码和文件-创新互联
文章位置:http://cdweb.net/article/ggijp.html