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