-1

我正在努力让(JavaScript)脚本在 Java 中工作。

我有一个 JavaScript 程序,在我的 Java 程序中定义(以及所有必要的脚本引擎相关事物的实例),如下所示:

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);

删除此行并重新运行您的代码

如果您想保留您的评论,那么不要使用单行评论 (//),而是使用多行评论 (/**/)

于 2012-04-25T03:27:36.943 回答