Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js:如何写入java子进程stdin_Java_Node.js_Stdin_Bukkit_Child Process - Fatal编程技术网

Node.js:如何写入java子进程stdin

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'); 但

我已经编写了一个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
对象是一个,它有三个:
stdin
stdout
stderr
。它们不是函数,而是可以读取(stdout和stderr)和写入(stdin)的流

以下是一个例子:

jar.stdin.write('stop\n');
jar.stdout.pipe(process.stdout);
它会将一些数据写入子进程的标准输入,并将其输出传输到节点进程的标准输出(即控制台)

请注意,调用是异步的:在调用
write()
的时间和它真正写入进程输入的时间之间可能会有一点延迟

有关流的概述,您可以阅读