Поддержка Java 7 + Rhino 1.7R3 для модулей CommonJS?

Мне нужна помощь, чтобы CommonJS работал на Java 7 и Rhino 1.7R3.

Rhino 1.7R3 поддерживает модули CommonJS :

. А Java 7 поставляется вместе с Rhino 1.7R3. К сожалению, Rhino для Java 7 является модифицированной версией и не включает пакет org.mozilla.javascript.commonjs:

. Я хотел бы использовать поддержку Rhino 1.7R3 для CommonJS через javax.scriptAPI следующим образом:

ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
engine.put("markdown", markdown);
engine.eval("var html = require('./Markdown.Sanitizer').getSanitizingConverter().makeHtml(markdown);");
return (String) engine.get("html");

(Через ScriptEngineManagerя подтвердил, что действительно использую двигатель Rhino 1.7R3. )Я подумал, что, возможно, я мог бы просто добавить следующую зависимость к пути к классам


    org.mozilla
    rhino
    1.7R3

и CommonJS — в частности, require()— начнут работать. Но это не так. Когда я пытаюсь использовать require(), я получаю

Caused by: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "require" is not defined. (#2)
    at sun.org.mozilla.javascript.internal.ScriptRuntime.constructError(ScriptRuntime.java:3773)
    at sun.org.mozilla.javascript.internal.ScriptRuntime.constructError(ScriptRuntime.java:3751)
    at sun.org.mozilla.javascript.internal.ScriptRuntime.notFoundError(ScriptRuntime.java:3836)

Как заставить Java 7 работать с полной версией Rhino 1.7R3, чтобы получить поддержку CommonJS?

РЕДАКТИРОВАТЬ:Я нашел следующий вопрос, который касается точно такой же темы:

Проверка работоспособности :В Rhino нет функции запроса, верно?

Респондент предполагает, что, возможно, можно заменить ограниченный Rhino 1.7R3 на CommonJS Rhino 1.7R3, но не говорит, как это можно сделать. Вот об этом я и спрашиваю.

7
задан Community 23 May 2017 в 12:33
поделиться