从Node.js / Heroku应用程序执行Java程序服务器端?

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

我有一个Node.js / Heroku应用程序。 但是现在需要添加服务器端function来在input数据文件上运行algorithm并将数据输出为JSON格式。 我已经有了一个可以读取文件并运行algorithm的Java库,对于我来说,用纯Node.js重写它会是非常困难的(最好)。

因此,可以编写一个命令行程序,它接受一个input文件并将结果输出到标准输出,例如

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

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

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

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

可以通过一个完全无阻塞的方式通过一个孩子的stdin,stdout和stderr来传输数据。

请注意,上面的示例命令是不正确的,因为你试图pipe道到一个文件( output.json )。 pipe道仅在进程之间工作。 subprocess模块将允许你直接读取进程的标准输出,你不需要文件(类似的inputstream)