一些为Rhino的shell开发的JavaScript文件使用load()加载额外的JavaScript文件。我正在尝试使用javax.script嵌入其中一个Rhino JavaScript文件的功能。不幸的是,load()函数不是由javax.script的JavaScript实现的。尝试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程序(而不是从shell)中计算JavaScript文件时,Java是否为load()函数提供了一个?
发布于 2011-05-25 23:58:33
load函数非常旧。在Rhino的最新RC (RC3)中,有一个commonJS module加载器实现。
您必须切换到Rhino的嵌入式版本。一旦创建了脚本上下文,就可以安装require函数。
因此,如果你加载了一个文件,'./math.js'会变成var math = require('math');。在使用模块的URI创建模块提供程序之后。
https://stackoverflow.com/questions/3539624
复制相似问题