Подтвердить что ты не робот

Как я могу использовать Javascript в Java?

Я хотел создать небольшой продукт, в котором я хотел бы дать какую-то особенность, в которой пользователь может написать javascript типа script.

А также из javascript, способного создавать объекты и вызывающие методы на них.

Есть ли какие-либо рамки для этого?

4b9b3361

Ответ 1

Rhino - это то, что вы ищете.

Rhino - это реализация JavaScript с открытым исходным кодом, полностью написанная в Java. Он обычно встроен в Java-приложения для предоставления сценариев для конечных пользователей.

Обновление: Теперь Nashorn, который является более совершенным JavaScript Engine для Java, доступен с jdk8.

Ответ 2

Java включает в себя расширительный пакет языка сценариев, начиная с версии 6.

Смотрите документацию проекта Rhino для внедрения интерпретатора JavaScript в Java.

[изменить]

Вот небольшой пример того, как вы можете подвергать объекты Java вашим интерпретируемому script:

public class JS {
  public static void main(String args[]) throws Exception {
    ScriptEngine js = new ScriptEngineManager().getEngineByName("javascript");
    Bindings bindings = js.getBindings(ScriptContext.ENGINE_SCOPE);
    bindings.put("stdout", System.out);
    js.eval("stdout.println(Math.cos(Math.PI));");
    // Prints "-1.0" to the standard output stream.
  }
}

Ответ 3

Вы можете использовать ScriptEngine, например:


public class Main {
    public static void main(String[] args) {
        StringBuffer javascript = null;
        ScriptEngine runtime = null;

        try {
            runtime = new ScriptEngineManager().getEngineByName("javascript");
            javascript = new StringBuffer();

            javascript.append("1 + 1");

            double result = (Double) runtime.eval(javascript.toString());

            System.out.println("Result: " + result);
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }
}

Ответ 5

Oracle Nashorn обеспечивает интероперабельность между мирами Java и JavaScript. Это означает, что ваш код Java может вызвать код JavaScript, и наоборот. Основное руководство по пониманию того, как писать программу с использованием Oracle Nashorn.

Ответ 6

JavaScript-движок Rhino, который был включен в JDK 6, заменяется новым движком Nashorn для JDK 8.

Блог Oracle для Nashorn содержит новости, а также примеры исходного кода.