Функция загрузки () Rhino доступна в JavaScript, предоставляемом javax.script? - PullRequest
7 голосов
/ 22 августа 2010

Некоторые файлы JavaScript, разработанные для оболочки Rhino, используют load () для загрузки дополнительных файлов JavaScript.Я пытаюсь встроить функциональность из одного из этих файлов JavaScript Rhino, используя javax.script.К сожалению, функция load () не реализована в JavaScript javax.script.При попытке выполнить eval () сценарий, содержащий load (), возникает следующая ошибка:

com.sun.script.javascript.RhinoScriptEngine:-1:in `eval': javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "load" is  not defined.

Предоставляет ли javax.script функцию load () при оценке файла JavaScript из программы Java (не из скорлупы)?

1 Ответ

1 голос
/ 25 мая 2011

Функция загрузки очень старая. В последнем RC (RC3) Rhino есть реализация модуля CommonJS .

Вам придется переключиться на встроенную версию Rhino. Создав контекст скрипта, вы можете установить функцию require.

Таким образом, если вы загрузите файл, './math.js' станет var math = require('math');. После того как вы создали свой модуль провайдера с URI модуля.

...