新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
java腳本引擎Rhino執(zhí)行js代碼和文件
測(cè)試js腳本引擎
成都創(chuàng)新互聯(lián)是專業(yè)的溧陽(yáng)網(wǎng)站建設(shè)公司,溧陽(yáng)接單;提供網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行溧陽(yáng)網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
public class helloworld {
public static void main(String[] args) throws Exception {
//獲得腳本引擎對(duì)象
ScriptEngineManager sem=new ScriptEngineManager();
ScriptEngine engine=sem.getEngineByName("javascript");
//定義變量,會(huì)存儲(chǔ)到引擎上下文種,java和js都能取到
engine.put("msg","good man");
String str="var user= {name:'我',age:18,schools:['高中','大學(xué)']};";
str+="print(user.name);";
//執(zhí)行腳本
engine.eval(str);
//js代碼修改
engine.eval("msg = 'i am a good man';");
//java獲取值
System.out.println(engine.get("msg"));
//定義js函數(shù)
engine.eval("function add(a,b){var sum=a+b;return sum;}");
//執(zhí)行js函數(shù)
//取得調(diào)用接口
Invocable jsInvoke =(Invocable)engine; //Invocable是ScriptEngine的一個(gè)接口,調(diào)用函數(shù)需要強(qiáng)轉(zhuǎn)
//執(zhí)行js函數(shù)
Object result1=jsInvoke.invokeFunction("add", new Object[]{113,20});
System.out.println(result1);
//導(dǎo)入其他java包,使用其他包種的java類
String jsCode=" var list=java.util.Arrays.asList([\"小學(xué)\",\"大學(xué)\"]);";
engine.eval(jsCode);
List list2=(List)engine.get("list");
for(String temp:list2)
{
System.out.println(temp);
}
//執(zhí)行一個(gè)js文件(置于src下即可)
URL url=helloworld.class.getClassLoader().getResource("nn.js"); //類加載器,返回url
FileReader fr=new FileReader(url.getPath());
engine.eval(fr);
fr.close();
}
}
網(wǎng)站標(biāo)題:java腳本引擎Rhino執(zhí)行js代碼和文件
網(wǎng)頁(yè)路徑:http://www.dlmjj.cn/article/giichs.html