-1

私は (JavaScript) スクリプトを Java で動作させることに取り組んでいます。

次のように、Java プログラムで (必要なすべてのスクリプト エンジン関連のインスタンスと共に) 定義された JavaScript のプログラムがあります。

static ScriptEngineManager engineManager = new ScriptEngineManager();
static ScriptEngine jsengine = engineManager.getEngineByName("js");
static Invocable jsinvoke = (Invocable) jsengine;


static String program =

    "//importPackage(javax.swing);" +
    "function myMethod(x, y) {" +
        "return x+y;" +
    "}";

プログラムの開始時にこれを呼び出しますが、これは問題なく動作します。

    try {
        jsengine.eval(program);
    } catch(ScriptException e) {e.printStackTrace();}

次に、これで呼び出しますmyMethod

    try {
        jsinvoke.invokeFunction("myMethod", x, y);
    } catch(ScriptException se) {
        se.printStackTrace();
    }
    catch(NoSuchMethodException nsme) {
        nsme.printStackTrace();
    }

エラーが発生しますjava.lang.NoSuchMethodException: no such method: myMethod。それは明らかに JavaScript に存在します。

4

1 に答える 1

3

メソッド名もコメントアウトしているため、コメント化されたコードが問題の原因のようですmyMethod

//importPackage(javax.swing);

この行を削除して、コードを再実行してください

コメントを保持したい場合は、1 行コメント (//) の代わりに複数行コメント (/**/) を使用します。

于 2012-04-25T03:27:36.943 に答える