0
當我嘗試運行子進程並將其放入stdin某些文本時,它會引發錯誤。 這裏是子進程的代碼:Node.js child.stdin.write不起作用
import java.io.Console;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("started");
Console console = System.console();
while (true) {
String s = console.readLine();
System.out.println("Your sentence:" + s);
}
}
}
腳本的代碼,運行此程序:
var spawn = require('child_process').spawn;
var child = spawn('java', ['HelloWorld', 'HelloWorld.class']);
child.stdin.setEncoding('utf-8');
child.stdout.pipe(process.stdout);
child.stdin.write("tratata\n");
// child.stdin.end();
它拋出:
events.js:161
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at exports._errnoException (util.js:1028:11)
at Pipe.onread (net.js:572:26)
通知,當我child.stdin取消註釋行。結束();它只是結束任何內部消除反應
FWIW'child.stdin.setEncoding('utf-8');'不正確。 'setEncoding()'用於'Readable'流,但'child.stdin'用作'Writable'流。 – mscdex
此外,你是否嘗試使用CRLF而不是LF作爲行結尾(例如'child.stdin.write(「tratata \ r \ n」);')? – mscdex