Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在windows服务中使用NSSM启动NodeJs子进程不起作用_Java_Node.js_Windows Services_Nssm - Fatal编程技术网

Java 在windows服务中使用NSSM启动NodeJs子进程不起作用

Java 在windows服务中使用NSSM启动NodeJs子进程不起作用,java,node.js,windows-services,nssm,Java,Node.js,Windows Services,Nssm,因此,我目前有一个Nodejs应用程序,它生成一个执行java应用程序的子进程,当直接从命令提示符运行时,它工作得很好 http.createServer(function (request, response) { console.log('Started Executing Request! \n' ); const { exec } = require('child_process'); exec('"C:\\Program Files\\Java\\jdk1.8.0_172\\bin

因此,我目前有一个Nodejs应用程序,它生成一个执行java应用程序的子进程,当直接从命令提示符运行时,它工作得很好

http.createServer(function (request, response) {

console.log('Started Executing Request! \n' );

const { exec } = require('child_process');
exec('"C:\\Program Files\\Java\\jdk1.8.0_172\\bin\\java.exe" -jar "C:\\Temp\\myjava.jar"', (err, stdout, stderr) => {
  if (err) {
      console.log('There was an error! ' + err);
    // node couldn't execute the command
    return;
  }

  // the *entire* stdout and stderr (buffered)
  console.log('stdout: ' + stdout);
  console.log('stderr: ' + stderr);
});

console.log('Finished Executing Request! \n' );
}).listen(8087);

// Console will print the message
console.log('Server running at http://127.0.0.1:8087/ \n');

我遇到的问题是,当将其放入服务时,它似乎不想执行java应用程序。我将其输出到日志文件,日志中有“开始执行请求”和“完成执行请求!”,但java未执行。

请确保在服务的登录选项卡上设置用户帐户:

指定“直接从命令提示符运行”时登录的帐户,以便Java可以找到执行其工作所需的重要环境变量(例如Java_HOME)


这些环境变量在您的“本地系统”帐户中可能不可用,这就是您在那里运行java时遇到问题的原因…

我正试图打印到标签打印机上,结果发现打印机驱动程序本身存在问题。似乎从服务打印容易出现问题,所以我选择了另一条路线。我最后做的是创建了一个自托管桌面应用程序,它最小化到windows上的系统托盘。上述应用程序在mac和linux中运行正常。

Hi CoreTech,感谢您的回复。实际上,一个普通的HelloWorld.jar文件在服务中运行良好。。。问题是我试图运行的jar文件试图打印到本地打印机,而这似乎无法运行。正如我所说的,当我直接从命令提示符下运行它时,这一切都会起作用,这让我感到困惑。我还将登录用户更改为管理员,这似乎没有什么不同。如果我的jar只是在打印文本,那么它似乎不想在服务中工作。您是否尝试过在命令提示符下正常运行时设置登录到的用户帐户?管理员可能没有安装所有必需的软件。