在Node.js中,我需要运行一个JAR文件,因此创建一个子进程:
var cp = require('child_process');
var child = cp.spawn('.../java.exe', ['-jar', 'C:/test.jar']);
child.stdout.on('data', function(data) {
console.log(data.toString());
});
child.stderr.on('data', function(data) {
console.log('Error: ' + data.toString());
});
我尝试使用child.stdin.write('test test');
将数据发送到子进程,但是我遇到了问题 - 我不知道如何在Java程序中获取这些数据。
我尝试了以下内容:
public static void main(String[] args) {
System.out.println("Waiting for input");
Scanner s = new Scanner(System.in);
String resp = s.nextLine();
System.out.println("Input got: " + resp);
}
...以及初始化DataInputStream(System.in)
,但无济于事。我看到了#34;等待输入"在Node.js中,但似乎我通过听System.in
来咆哮错误的树。
如何通过child.stdin.write()
和child.stdin.end()
获取从Node.js发送的输入?提前谢谢!
答案 0 :(得分:0)
System.in
是正确的,错误是我忽略了一个非常容易忘记的细节:
\n
,否则它不会通过。这就是它的全部内容。
我想保留这个问题以防其他人遇到同样的问题。有很多关于从Java程序创建子进程的信息,但不是关于创建一个将充当子进程本身的Java程序。