javax.script提供的JavaScript中提供的Rhino load()函数?

时间:2010-08-22 00:41:10

标签: javascript load rhino javax.script

为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.

从Java程序(而不是shell)中评估JavaScript文件时,javax.script是否为load()函数提供了一个?

1 个答案:

答案 0 :(得分:1)

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

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

因此,如果您加载文件'./math.js'将成为var math = require('math');。使用模块的URI创建模块提供程序后。