【发布时间】:2019-09-12 16:42:26
【问题描述】:
使用Rhino 评估JavaScript 时出现以下错误:
TypeError: importPackage is not a function, it is object
这个函数是一个feature of Rhino,用于导入Java类,实现与Java的互操作。
我查看了相关的 Rhino 代码,发现 importPackage 功能包含在一个名为 ImporterTopLevel 的类中,该类似乎加载在 ScriptRuntime 中:
public static ScriptableObject initStandardObjects(Context cx,
ScriptableObject scope,
boolean sealed)
{
ScriptableObject s = initSafeStandardObjects(cx, scope, sealed);
new LazilyLoadedCtor(s, "Packages",
"org.mozilla.javascript.NativeJavaTopPackage", sealed, true);
new LazilyLoadedCtor(s, "getClass",
"org.mozilla.javascript.NativeJavaTopPackage", sealed, true);
new LazilyLoadedCtor(s, "JavaAdapter",
"org.mozilla.javascript.JavaAdapter", sealed, true);
new LazilyLoadedCtor(s, "JavaImporter",
"org.mozilla.javascript.ImporterTopLevel", sealed, true);
for (String packageName : getTopPackageNames()) {
new LazilyLoadedCtor(s, packageName,
"org.mozilla.javascript.NativeJavaTopPackage", sealed, true);
}
return s;
}
因此,我希望它可以工作,但由于某种原因,它没有。
【问题讨论】:
标签: javascript java rhino