zoukankan      html  css  js  c++  java
  • 脚本执行JavaScript代码

    下面是一个具体的demo测试脚本引擎,执行javas文件、

    package Rhino;

    import java.io.FileReader;
    import java.net.URL;

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

    /*
    * 测试脚本引擎
    */
    public class Demo01 {
    public static void main(String[] args) throws Exception {
    //获得脚本引擎对象
    ScriptEngineManager sem=new ScriptEngineManager();
    ScriptEngine engine=sem.getEngineByName("javascript");
    //定义变量,存储到引擎上下文里面
    engine.put("msg", "tom is a boy");
    String str="var user= {name:'liulei',age:18,schools:['清华','北大']};";
    str += "print(user.name);";
    //执行脚本
    engine.eval(str);
    engine.eval("msg='sxt is a good school';");
    System.out.println(engine.get("msg"));
    //定义函数
    engine.eval("function add(a,b){var sum=a + b; return sum;}");
    //取得调用接口
    Invocable invocable=(Invocable) engine;
    //执行脚本里面的方法
    Object result=invocable.invokeFunction("add", new Object[]{13,30});
    System.out.println(result);
    // //导入其他java 包,使用其他包中的java类
    // String jsCode= "importPackage(java.util); var list=Arrays.asList(["北京","上海"]);";
    // engine.eval(jsCode);
    // List<String> list2=(List<String>)engine.get("list");
    // for(String temp:list2) {
    // System.out.println(temp);
    // }
    //执行一个js文件(我们将a.js至于项目的src下即可)
    URL url=Demo01.class.getClassLoader().getResource("a.js");
    FileReader fr=new FileReader(url.getPath());
    engine.eval(fr);
    fr.close();
    }
    }

     总之java也可以执行其他的语言,只需要查阅相应的api就行

  • 相关阅读:
    项目目标文档
    河北省民间组织管理系统项目分析
    《探索需求》读书笔记一
    “花儿日记”项目总结
    2015年秋季个人阅读计划
    场景调研
    “数组最大值求和”结对情况
    课堂改进意见
    《梦断代码》阅读笔记三
    linux io 学习笔记(03)---共享内存,信号灯,消息队列
  • 原文地址:https://www.cnblogs.com/henuliulei/p/9573827.html
Copyright © 2011-2022 走看看