@Quad_Tree

Как вызвать метод из Java класса в JavaScript?

Я добавил JS движок в свой Java проект, для выполнения скриптов по ходу выполнения программы. (Опыта с JavaScript не имею никакого, так что извините если вопрос вам покажется очевидным). И линкую к JS движку два класса через класс Bindings:
engine = new ScriptEngineManager().getEngineByName("javascript");
Bindings binds = engine.getBindings(ScriptContext.GLOBAL_SCOPE);

binds.add("out", System.out); // стандартный вывод
binds.add("core", Core.getInstance()); // класс ядра из проекта

И при выполнении следующего JS скрипта:
core.isRun();
JS движок выдаёт ошибку: isRun is not function
Хотя в тоже время, без ошибок выполняет данный скрипт:
out.println("Hello");

Так чем отличается метод в классе проекта от метода в System.out? И как это можно исправить?

P.S. Метод выполнения самого скрипта:
public static String run(String command) {
        String result = "error";
        try {
            result = engine.eval(command).toString();
        } catch (ScriptException | NullPointerException e) {
            e.printStackTrace();
        }
        if (result != null)
            return result;
        else return "Nothing to show";
    }
  • Вопрос задан
  • 310 просмотров
Пригласить эксперта
Ответы на вопрос 2
severus256
@severus256
Code everywhere....
Я так понимаю, вы хотите с фронтенда вызывать методы бекэнда в яве?
тогда вам нужно смотреть в сторону Rest-контроллеров и AngularJS, к примеру
Ответ написан
Комментировать
@Braidner
Core.getInstance()
Должен возвращать public class с public мотодами
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы