【发布时间】:2017-03-06 06:41:00
【问题描述】:
我正在尝试使用 Rhino 库从 java 代码中调用一些 javascript。但它似乎在一个类型化的数组上窒息。这是我的简单js文件
function decrypt(version, iv, encryptedBuffer) {
var output8;
output8 = new Uint8Array(encryptedBuffer);
var outputBuffer = output8.buffer;
var output32 = new Int32Array(outputBuffer);
... more funny code
}
但是调用的时候
jsFunction.call(rhino, scope, scope, params);
我明白了
sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: 未定义“Uint8Array”。 (JavaScript#5680)
有什么额外的配置可以让我的小 js sn-p 运行吗?
【问题讨论】:
-
您确定您的 Rhino 版本支持类型化数组吗? edit 我认为它们仅在 Rhino 1.8 或更高版本中受支持。
-
我使用的是 1.7.7.1 版本,在更改日志中显示支持 typedArray。我可能需要java 8吗?我现在试试
-
Java 8 附带 Nashorn,这是 JVM 的新 JavaScript 运行时。我只是快速搜索了一下,发现a bug on the topic。
-
我正在从 Android 拨打这个电话,所以我不能使用 nashorn。无论哪种方式,我只是尝试使用 java 1.8 运行我的原始代码,但我仍然遇到相同的错误(要清楚,我正在普通 Java(不是来自 android)上测试这个,所以我在使用它之前 100% 一切都在工作安卓)
-
JS代码怎么调用?你使用 rhino 原生类还是 jdk API。你能发布你的java代码吗?
标签: javascript java arrays call rhino