节点。js:如何写入javachildprocessstdin
我写了一个节点。js服务器,可以从webinterface生成java子进程,并向该接口显示jar的标准输出。现在我需要通过stdin向jar发送一些命令,这就是我的问题:
我正在生成服务器:
jar = cp.spawn('java', ['-Xmx1024M', '-jar', dir+'craftbukkit.jar', '-o true','-nojline'], {
cwd:dir);
正在尝试发送一些命令:
jar.stdin('stop\n');
但它什么都没用。在其他孩子的过程中,它是这样工作的,但现在我不知道如何做到这一点。有人有主意吗
伙计们
# 1 楼答案
你的
jar
对象是一个ChildProcess object,它有三个streams:stdin
,stdout
,stderr
。它们不是函数,而是可以读取(stdout和stderr)和写入(stdin)的流下面是一个例子:
它会将一些数据写入子进程的标准输入,并将其输出传输到节点进程的标准输出(即控制台)
注意^{} 调用是异步的:在调用
write()
的时间和它真正写入进程输入的时间之间可能有一个小的延迟有关流的概述,请阅读The Stream Handbook