熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java調用JS腳本裡的方法

2013-11-23 19:12:25  來源: Java核心技術 
    本例子使用了JDK 以上的javaxscript包通過Invocable接口實現JAVA調用JS腳本裡的方法本例中調用分為內部執行腳本和外部執行腳本外部執行腳本分為不帶參數調用和帶參數調用主要采用invokeFunction方法調用
   
    ObjectinvokeFunction(String name Object… args)
   
    用於調用腳本中定義的頂層程序和函數
   
    ObjectinvokeMethod(Object thiz String name Object… args)
   
    對以前的腳本執行中已經編譯的腳本對象(以 ScriptEngine 的狀態保持)調用某一方法
   
    package dejavase;
   
    import javaxscriptInvocable;
   
    import javaxscriptScriptEngineManager;
   
    import javaxscriptScriptEngine;
   
    import javaioFile;
   
    import javaioReader;
   
    import javaioFileReader;
   
    public class AjavaInvokingFunction {
   
    public static void main(String[] args) {
   
    // 獲得一個JavaScript腳本引擎也可以是ECMAScript腳本引擎
   
    ScriptEngineManager manager = new ScriptEngineManager()
   
    ScriptEngine engine = managergetEngineByName(JavaScript
   
    String titlescript = function sayTitle() {
   
    +    println(源碼實例使用javaxscript調用JS腳本裡的方法
   
    +    println(
   
    + };
   
    try {
   


    // 調用內部腳本執行
   
    engineeval(titlescript)
   
    // 轉換為Invocable
   
    Invocable invocableEngine = (Invocable) engine;
   
    // 不帶參數調用sayTitle方法
   
    invocableEngineinvokeFunction(sayTitle
   
    // 調用外部腳本執行
   
    // 創建JS文件的File對象並讀入流
   
    File functionscript = new File(ajavajs
   
    Reader reader = new FileReader(functionscript)
   
    // 開始執行ajavajs裡的程序
   
    engineeval(reader)
   
    // 不帶參數調用sayHello方法
   
    invocableEngineinvokeFunction(sayHello
   
    // 帶參數調用sayHello方法
   
    invocableEngineinvokeFunction(sayHello mark
   
    } catch (Exception e) {
   
    eprintStackTrace()
   
    }
   
    }
   
    }
   
    ajavajs文件
   
    function sayHello(){
   
    sayHello(null)
   
    }
   
    function sayHello(name){
   
    if(name==null){
   
    println(歡迎你!請注冊Ajava會員
   
    }else{
   
    println(name+獨立JAVA社區歡迎你
   
    }
   
    }
   
    運行結果(控制台)
   
    源碼實例使用javaxscript調用JS腳本裡的方法


From:http://tw.wingwit.com/Article/program/Java/hx/201311/26436.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.