Мне нужна помощь, чтобы 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.script
API следующим образом:
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, но не говорит, как это можно сделать. Вот об этом я и спрашиваю.