我想用Node.js运行Java命令
此命令适用于bat文件
"C:\Program Files\Java\jdk1.8.0_121\bin\java.exe" -Xmx1024m -XX:+UseParallelGC -Dfile.encoding=UTF-8 -classpath "<path>\app\netlogo-6.1.1.jar" org.nlogo.headless.Main --model modelname.nlogo --setup-file setup.xml --experiment experiment1 --table table-output.csv
如何使用Nodejs运行此命令? 我是否可以使用Node child_process,并且可以在服务器上部署我的应用程序后运行它?
答案 0 :(得分:1)
如果您希望它在主应用程序中异步执行:
const { exec } = require('child_process');
exec('YOUR COMMAND HERE', (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
console.error(`stderr: ${stderr}`);
});
或带有子进程的子进程,该子进程将通过事件发射器报告回您的主应用程序:
const { spawn } = require('child_process');
const YOUR_COMMAND = spawn('YOUR_COMMAND', ['--arg1', 'value1', '--arg2', 'value2']);
YOUR_COMMAND.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
YOUR_COMMAND.stderr.on('data', (data) => {
console.error(`stderr: ${data}`);
});
YOUR_COMMAND.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
但这是您应该去的地方:https://nodejs.org/api/child_process.html, 我的答案只是对所提供示例的重读