您好,登錄后才能下訂單哦!
測試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<String> list2=(List<String>)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();
}
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。