我使用 JVM 中的 rhino 和 jaxax.script 接口(interface)。我正在尝试评估包含“需要”调用的 JavaScript。这不起作用,因为没有“要求”的定义。 require 只是一个 v8 的东西吗?或者也许只是一个 node.js 的东西?在 JVM 上有解决这个问题的方法吗?我能想到的选项是
- 通过手动包含所需代码重写 js 文件
- 调用一个单独的 node.js 进程
(我不一定推荐这些方法。)
最佳答案
require
是一个 CommonJS指定 node.js(和其他框架,如 RingoJS)使用。最新版本的 Rhino 确实支持 require
,但 JVM 附带的版本不支持。
要解决这个问题,您可以直接使用 Rhino 而不是 javax.script
接口(interface),或者自己实现 CommonJS 模块系统。您或许可以使用较新的 Rhino 版本来代替 JVM,但我不知道这是否可行。
不过,您可能需要使用 RingoJS 之类的东西,因为可能假定存在其他 CommonJS 规范,但 Rhino 本身不支持这些规范。当然,依赖于 node.js 特定功能的库仍然存在问题。
关于javascript - 完整性检查 : Rhino does not have a require function, 对吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10723180/