我正在使用带有 jaxax.script 接口的 JVM 中的 rhino。我正在尝试评估包含“require”调用的 JavaScript。这不起作用,因为没有“要求”的定义。只需要一个 v8 的东西吗?或者可能只是一个 node.js 的东西?JVM上有没有办法解决这个问题?我能想到的选项是
- 通过手动包含所需的代码来重写 js 文件
- 调用一个单独的 node.js 进程
(我不一定推荐这些方法。)
我正在使用带有 jaxax.script 接口的 JVM 中的 rhino。我正在尝试评估包含“require”调用的 JavaScript。这不起作用,因为没有“要求”的定义。只需要一个 v8 的东西吗?或者可能只是一个 node.js 的东西?JVM上有没有办法解决这个问题?我能想到的选项是
(我不一定推荐这些方法。)
require
是node.js(和其他框架,如RingoJS)使用的CommonJS规范。最新版本的 Rhino 确实支持,但 JVM 附带的版本不支持。require
要解决这个问题,您可以直接使用 Rhino 代替javax.script
接口,或者自己实现 CommonJS 模块系统。您也许可以使用较新的 Rhino 版本来代替 JVM,但我不知道这是否可行。
不过,您可能需要使用像 RingoJS 这样的东西,因为可能假定存在其他 CommonJS 规范,但 Rhino 本身并不支持这些规范。当然,依赖于 node.js 特定功能的库仍然存在问题。