當前位置:首頁 » 編程語言 » javaeval

javaeval

發布時間: 2024-07-05 18:42:11

java如何調用javascript的函數

[java] view plainprint?
<span style="font-size:18px;">package suggestion16;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;

import javax.script.Bindings;
import javax.script.Invocable;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class ScriptText {

public static void main(String[] args) throws FileNotFoundException, ScriptException, Exception {
ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
Bindings bind = engine.createBindings();
bind.put("factor", 2); //這里綁定一個factor的值為2.
engine.setBindings(bind,ScriptContext.ENGINE_SCOPE);
Scanner input = new Scanner(System.in);
while(input.hasNext())
{
int first = input.nextInt();
int sec = input.nextInt();
System.out.println("輸入的參數為:"+ first+ " , " + sec);
engine.eval(new FileReader("E:/cal.js"));
if(engine instanceof Invocable)
{
Invocable in = (Invocable)engine;
Double result = (Double)in.invokeFunction("cal",first,sec);
System.out.println("運算結果為:" + result.intValue());
}
}
}

}
</span>

其中的「E:/cal.js」就是我們js文件的保存路徑。並且這個主函數可以循環的輸入。
我們運行一下這個程序得到的結果如下:
[html] view plainprint?
<span style="font-size:18px;">1
2
輸入的參數為:1 , 2
運算結果為:1
</span>
上面也就是 調用了 1 + 2 - 2 = 1 ,所以結果為1
我們將js文件中的function方法改變下,改編為下面的函數:
[javascript] view plainprint?
<span style="font-size:18px;">function cal(var1,var2)
{
return var1+var2*factor;
}</span>

熱點內容
java編寫記事本程序 發布:2025-07-13 16:12:13 瀏覽:663
辦公室如何做數據伺服器 發布:2025-07-13 15:55:24 瀏覽:327
用一句話證明我很窮ftp 發布:2025-07-13 15:54:48 瀏覽:936
安卓如何啟動畫面 發布:2025-07-13 15:43:22 瀏覽:643
安卓哪個娃娃 發布:2025-07-13 15:35:52 瀏覽:142
伺服器列表格式錯誤什麼意思 發布:2025-07-13 15:33:05 瀏覽:170
lol腳本有哪些 發布:2025-07-13 15:10:28 瀏覽:165
lol怎麼上傳囧圖 發布:2025-07-13 15:09:40 瀏覽:90
c語言火車售票系統 發布:2025-07-13 15:06:55 瀏覽:391
用什麼緩存視頻 發布:2025-07-13 14:52:27 瀏覽:360