7

一些为 Rhino 的 shell 开发的 JavaScript 文件使用 load() 来加载额外的 JavaScript 文件。我正在尝试使用 javax.script 从这些 Rhino JavaScript 文件之一嵌入功能。不幸的是,javax.script 的 JavaScript 没有实现 load() 函数。尝试 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 在从 Java 程序(而不是从 shell)中评估 JavaScript 文件时是否提供了 load() 函数?

4

1 回答 1

1

加载功能很老了。在 Rhino 的最新 RC (RC3) 中有一个commonJS 模块加载器实现。

您将不得不切换到 Rhino 的嵌入式版本。创建脚本上下文后,您可以安装 require 函数。

所以如果你加载一个文件'./math.js'会变成var math = require('math');. 在您使用模块的 URI 创建模块提供程序之后。

于 2011-05-25T15:58:32.953 回答