2012-04-25 5 views
-1

Я работаю над созданием сценариев (JavaScript) для работы на Java.Java-скриптинг NoSuchMethodException?

У меня есть программа в 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, так что я сделал не так?

ответ

3

Закомментированный код, кажется, быть источником проблемы, так как закомментирует даже имя myMethod

//importPackage(javax.swing); 

метод удалить эту строку и повторите код

Если вы хотите сохранить свой комментарий, то вместо комментария одной строки (//) использовать многострочный комментарий (/ ** /)

+2

Нет новой строки. Хорошо поймал. –

+0

yeah thanks :) .. – mprabhat

+0

Или он мог просто прокомментировать всю строку в Java, а не в своей строке Javascript. Тот же эффект, минус ошибки. –

 Смежные вопросы

  • Нет связанных вопросов^_^