4

我可以从 Heroku 上的 Node.js 应用程序调用 Java 程序吗?

我有一个 Node.js/Heroku 应用程序。但现在需要添加服务器端功能以在输入数据文件上运行算法并将数据输出为 JSON 格式。我已经有一个可以读取文件并运行算法的 Java 库,我很难(充其量)用纯 Node.js 重写它。

因此,可以编写一个命令行程序,该程序接受一个输入文件并将结果通过管道传输到标准输出,例如

java mytask.class -cp ./mylibrary.jar --in /tmp/file.in > output.json

是否可以从 Node.js 调用 Java 命令行程序?我知道可以将 Java 应用程序部署到 Heroku,但这里想从 Node.js 应用程序执行一点 Java。

4

1 回答 1

3

你不想要这个child_process.exec()特别是吗?

Node 通过 child_process 模块提供了一个三向的 popen(3) 工具。

可以通过孩子的标准输入、标准输出和标准错误以完全非阻塞的方式流式传输数据。

请注意,您上面的示例命令不正确,因为您正在尝试通过管道传输到文件 ( output.json)。管道仅在进程之间工作。子进程模块将允许您直接读取进程的标准输出并且您不需要该文件(类似于输入流)

于 2013-01-28T16:22:52.240 回答