Я добавил 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";
}