【问题标题】:node.js replace child_process.exec with spawnnode.js 用 spawn 替换 child_process.exec
【发布时间】:2018-07-17 11:56:06
【问题描述】:
这是我之前的代码:-
const child_process = require('child_process');
child_process.exec(`java -cp ./${dirPath}bin Main`);
我尝试像下面这样替换它:-
let spawn = require('child_process').spawn;
let child = spawn('java', [`-cp ./${dirPath}bin Main`]);
但我得到了错误:-
“options”参数必须是一个对象
如何通过指定路径使用 spawn 来执行 java 文件?
【问题讨论】:
标签:
node.js
child-process
spawn
【解决方案1】:
这在 Windows 上的 Node 10 中可以正常工作:
let spawn = require('child_process').spawn;
let child = spawn('java', ['-version']);
当然,这段代码会丢弃所有输出。
另外,参数有错误,所以你的代码应该是这样的
let spawn = require('child_process').spawn;
let child = spawn('java', ['-cp', `./${dirPath}bin`, 'Main']);
【解决方案2】:
对于 Konstantin 的回答 --> 请注意,child_process 包包含恶意代码,已被 npm 安全团队从注册表中删除。