更新時間:2022-10-10 10:12:41 來源:動力節(jié)點(diǎn) 瀏覽2719次
以下代碼顯示了如何從 Java 調(diào)用 Javascript 函數(shù)。
首先,它在 Javascript 文件中定義了四個函數(shù),并將其保存到 c:/Java_Dev/calculator.js 中。
var計算器 =新對象();
計算器.add =函數(shù)(n1, n2) n1 + n2;
計算器.減法 =函數(shù)(n1, n2) n1 - n2;
計算器.乘法 =函數(shù)(n1, n2) n1 * n2;
計算器.除法 =函數(shù)(n1, n2) n1 / n2;
然后,使用 eval() 函數(shù)加載腳本并獲取表示函數(shù)的 Object。
String scriptPath = "c:/Java_Dev/calculator.js" ;
engine.eval( "load('" + scriptPath + "')" );
對象計算器 = engine.get( "計算器" );
最后,通過名稱獲取函數(shù)并傳入?yún)?shù)。
對象 addResult = inv.invokeMethod(calculator, "add" , x, y);
Object subResult = inv.invokeMethod(calculator, "subtract" , x, y);
Object mulResult = inv.invokeMethod(calculator, "multiply" , x, y);
對象 divResult = inv.invokeMethod(calculator, "divide" , x, y);
導(dǎo)入javax.script.Invocable;
導(dǎo)入javax.script.ScriptEngine;
導(dǎo)入javax.script.ScriptEngineManager;
/ * w w w . j a v a 2秒。c o m * / public class Main {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine 引擎 = manager.getEngineByName( "JavaScript" );
如果
(!(engine instanceof Invocable)) {
System.out.println( "不支持調(diào)用方法。" );
返回;
}
Invocable inv = (Invocable) 引擎;
String scriptPath = "c:/Java_Dev/calculator.js" ;
engine.eval( "load('" + scriptPath + "')" );
對象計算器 = engine.get( "計算器" ); 詮釋x = 3;
整數(shù)y = 4;
對象 addResult = inv.invokeMethod(calculator, "add" , x, y);
對象子結(jié)果 = inv.invokeMethod(計算器,
, x, y);
Object mulResult = inv.invokeMethod(calculator, "multiply" , x, y);
對象 divResult = inv.invokeMethod(calculator, "divide" , x, y);
System.out.println(addResult);
System.out.println(subResult);
System.out.println(mulResult);
System.out.println(divResult);
}
}
上面的代碼生成以下結(jié)果。
這是 c:/Java_Dev/calculator.js 的源代碼。
var計算器 =新對象();
計算器.add =函數(shù)(n1, n2) n1 + n2;
計算器.減法 =函數(shù)(n1, n2) n1 - n2;
計算器.乘法 =函數(shù)(n1, n2) n1 * n2;
計算器.除法 =函數(shù)(n1, n2) n1 / n2;
以上就是關(guān)于“Java調(diào)用js方法”的介紹,大家如果對此比較感興趣,想了解更多相關(guān)知識,不妨來關(guān)注一下動力節(jié)點(diǎn)的Java視頻教程,里面的課程內(nèi)容從入門到精通,細(xì)致全面,通俗易懂,很適合沒有基礎(chǔ)的小伙伴學(xué)習(xí),相信對大家一定會有所幫助的。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743