私は (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 に存在します。