Java 进程通知节点事件循环


如果我在Java jar

文件中包含了一些Java代码,并且我的node.js进程启动了jar文件,那么当Java进程完成时,我该如何通知node.js?

当子进程退出时,child对象会发出exit事件。


。但是[输出]将写在javaland的某个地方,而不是nodeland,我如何最好地将结果放入节点进程中?

。我不明白你如何将java进程(例如System.out)的输出与Node联系起来.js

在操作系统级别,所有进程都有三个字符流:stdin、stdout 和 stderr。("标准"="标准"。当进程生成子进程时,它可以写入子进程的 stdin(向其发送输入)并从子进程的 stdout 和 stderr(接收其输出)读取。这是进程间通信的最基本形式,并且功能惊人。这与将一个命令行程序的结果通过管道传输到另一个(或文件)时的机制相同。

要读取 Java 程序写入System.outSystem.err的输出,您需要从 Node 子对象流中读取stdoutstderr

假设您已经生成了子进程并将其保存在变量 ch 中。以下是您阅读stdout并在流程结束时收到通知的方式:

ch.stdout.on('data', function (data) {
    var buff = new Buffer(data);
    console.log(buff.toString('utf8')); // Or whatever encoding you're using for output
});
ch.on('exit', function (code) {
    console.log('Child process exited with code ' + code);
});

最新更新