我如何使用Node.js运行Java命令

时间:2019-10-15 21:05:58

标签: java node.js command

我想用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,并且可以在服务器上部署我的应用程序后运行它?

1 个答案:

答案 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, 我的答案只是对所提供示例的重读