我遇到了一个问题,在命令运行时,我无法读取shelljs命令(执行java(的输出。我不知道它是否清楚,但基本上我希望这个shelljs命令一出现就输出,而不是在java程序完成后输出。提前感谢您的回答。
process = shell.exec('exec java.......', {async: true}, function(code, stdout, stderr) {
//Here I need the output
console.log('Exit code:', code);
console.log('Program output:', stdout);
console.log('Program stderr:', stderr);
});
您需要使用spawn
而不是exec
,因为spawn
会发出事件,而exec
只是等待执行完成。
更多信息:https://nodejs.org/api/all.html#child_process_child_process
const spawn = require('child_process').spawn;
const cmd = spawn('exec java......');
cmd.stdout.on('data', function (data) {
console.log('Program output:', data.toString());
});
cmd.stderr.on('data', function (data) {
console.log('Program stderr:', data.toString());
});
cmd.on('exit', function (code) {
console.log('Exit code:', code.toString());
});