Я получаю следующую ошибку при оценке JavaScript
с использованием Rhino
:
TypeError: importPackage is not a function, it is object
Эта функция является функцией 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;
}
Из-за этого я ожидал, что это сработает, но по некоторым причинам это не так.