【问题标题】:Node.js: How to write to the java-childprocess-stdinNode.js:如何写入 java-childprocess-stdin
【发布时间】:2013-10-31 13:49:36
【问题描述】:

我编写了一个 node.js-server,它可以从 web 界面生成 java 子进程并将 jar 的标准输出显示到界面。现在我需要通过标准输入向 jar 发送一些命令,这就是我的问题:

我正在生成服务器:

jar = cp.spawn('java', ['-Xmx1024M', '-jar', dir+'craftbukkit.jar', '-o true','-nojline'], {
cwd:dir);

尝试发送一些命令:

jar.stdin('stop\n');

但它没有做任何事情。在其他子进程中它是这样工作的,但现在我不知道该怎么做。任何人的想法?

谢谢各位!

【问题讨论】:

    标签: java node.js stdin bukkit child-process


    【解决方案1】:

    您的jarobject 是一个ChildProcess object,它具有三个streamsstdinstdoutstderr。它们不是函数,而是可以从(stdout 和 stderr)读取并写入(stdin)的流。

    这是一个例子:

    jar.stdin.write('stop\n');
    jar.stdout.pipe(process.stdout);
    

    它将一些数据写入您的子进程的标准输入,并将其输出通过管道传输到您的 Node 进程(即控制台)的标准输出。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-02
      • 2023-03-22
      • 2013-10-06
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      • 2011-05-05
      • 2011-03-23
      相关资源
      最近更新 更多