2010-08-22 8 views
7

Algunos archivos JavaScript que se han desarrollado para el shell de Rhino usan load() para cargar archivos JavaScript adicionales. Estoy intentando incorporar la funcionalidad de uno de estos archivos de Rhino JavaScript usando javax.script. Desafortunadamente, la función load() no está implementada por el JavaScript de javax.script. Cuando se trata de eval() que contiene una carga guión(), se produce el siguiente error:Función Rhino load() disponible en JavaScript proporcionado por javax.script?

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

¿El javax.script proporcionar una para la carga() la función de la evaluación de un archivo JavaScript desde dentro de un programa Java (no desde como el infierno)?

+2

Es posible que le resulte más fácil incorporar el contenido de Rhino en sentido ascendente, en lugar de intentar utilizar la versión que viene con la JVM. – jbeard4

Respuesta

1

La función de carga es muy antigua. En el último RC (RC3) de Rhino, hay una implementación del cargador commonJS module.

Tendrá que cambiar a una versión incrustada de Rhino. Una vez que haya creado un contexto de script, puede instalar la función de requerir.

Si cargó un archivo './math.js' se convertiría en var math = require('math');. Después de que haya creado su proveedor de módulos con el URI del módulo.

Cuestiones relacionadas