1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java rhino 运行 js_java 脚本引擎Rhino执行js代码和文件

java rhino 运行 js_java 脚本引擎Rhino执行js代码和文件

时间:2021-12-27 21:16:22

相关推荐

java rhino 运行 js_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();

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。