[英]Node.js: How to write to the java-childprocess-stdin
我编写了一个node.js-server,它可以从web接口生成一个java子进程,并将jar的stdout显示给接口。 现在我需要通过stdin向jar发送一些命令,这是我的问题:
我正在产生服务器:
jar = cp.spawn('java', ['-Xmx1024M', '-jar', dir+'craftbukkit.jar', '-o true','-nojline'], {
cwd:dir);
试图发送一些命令:
jar.stdin('stop\n');
但它什么都不做。 在其他Childprocesses中它的工作方式如下,但现在我不知道如何做到这一点。 有人有想法吗?
Thx伙计们!
您的jar
对象是一个ChildProcess对象 ,它有三个流 : stdin
, stdout
, stderr
。 它们不是函数,而是可以从(stdout和stderr)读取并写入(stdin)的流。
这是一个例子:
jar.stdin.write('stop\n');
jar.stdout.pipe(process.stdout);
它会将一些数据写入子进程的标准输入,并将其输出传递给Node进程的标准输出(即控制台)。
请注意, write()
调用是异步的:在调用write()
的时间和实际写入进程输入的时间之间可能会有一个小的延迟。
有关流的概述,您可以阅读The Stream Handbook 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.