java脚本引擎Rhino执行js代码和文件
测试js脚本引擎
成都创新互联是专业的溧阳网站建设公司,溧阳接单;提供网站设计、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行溧阳网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
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();
}
}
文章标题:java脚本引擎Rhino执行js代码和文件
网页地址:http://scyanting.com/article/giichs.html