3

我正在使用带有 jaxax.script 接口的 JVM 中的 rhino。我正在尝试评估包含“require”调用的 JavaScript。这不起作用,因为没有“要求”的定义。只需要一个 v8 的东西吗?或者可能只是一个 node.js 的东西?JVM上有没有办法解决这个问题?我能想到的选项是

  • 通过手动包含所需的代码来重写 js 文件
  • 调用一个单独的 node.js 进程

(我不一定推荐这些方法。)

4

1 回答 1

5

require是node.js(和其他框架,如RingoJS)使用的CommonJS规范。最新版本的 Rhino 确实支持,但 JVM 附带的版本不支持。require

要解决这个问题,您可以直接使用 Rhino 代替javax.script接口,或者自己实现 CommonJS 模块系统。您也许可以使用较新的 Rhino 版本来代替 JVM,但我不知道这是否可行。

不过,您可能需要使用像 RingoJS 这样的东西,因为可能假定存在其他 CommonJS 规范,但 Rhino 本身并不支持这些规范。当然,依赖于 node.js 特定功能的库仍然存在问题。

于 2012-05-23T15:47:11.577 回答