Java脚本NoSuchMethodException?
我正在努力让JavaScript脚本在Java中工作 我有一个JavaScript程序,在我的Java程序中定义,以及所有必要的脚本引擎相关的实例,如: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
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);