Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java脚本NoSuchMethodException?_Java_Javascript_Rhino_Javascript Engine_Nosuchmethod - Fatal编程技术网

Java脚本NoSuchMethodException?

Java脚本NoSuchMethodException?,java,javascript,rhino,javascript-engine,nosuchmethod,Java,Javascript,Rhino,Javascript Engine,Nosuchmethod,我正在努力让JavaScript脚本在Java中工作 我有一个JavaScript程序,在我的Java程序中定义,以及所有必要的脚本引擎相关的实例,如: static ScriptEngineManager engineManager = new ScriptEngineManager(); static ScriptEngine jsengine = engineManager.getEngineByName("js"); static Invocable jsinvoke = (Invoca

我正在努力让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-this-method:myMethod。它显然存在于JavaScript中,那么我做错了什么呢?

注释的代码似乎是问题的根源,因为它甚至注释掉了方法名myMethod

删除此行并重新运行代码


如果你想保留你的注释,那么就不要使用单行注释//使用多行注释/**/

,或者他可以用Java注释掉整行内容,而不是用Javascript字符串。同样的效果,除了虫子。是的,我真不敢相信我错过了。顺便问一下,可以将自定义库导入Rhino吗?因为它似乎找不到我安装的库jar,我知道它们正在工作,因为我可以用Java很好地导入它们。还是我应该提出另一个问题PNevermind:工作得很好。
//importPackage(javax.swing);