我在开发一个Electron桌面应用,其中需要连接mysql或oracle数据库,我的方案是用spring boot写了一个restful API服务器,然后在Electron上以网络请求的方式来调用这个服务,现在我希望通过我的应用来任意启动或关闭这个服务,我用maven将这个restful服务打成了个jar包,我该如何启动它呢?
我试着用了nodejs 的child_process 模块,以命令行的方式来启动这个jar包,代码如下:
var childProcess = require('child_process');
var options = {maxBuffer:1024*1024*100, encoding:'utf8', timeout:5000};
var child = childProcess.exec('java -jar *******.jar', options, function (error, stdout, stderr) {
if (error) {
console.log(error.stack);
console.log('Error Code: '+error.code);
console.log('Error Signal: '+error.signal);
}
console.log('Results: \n' + stdout);
if (stderr.length){
console.log('Errors: ' + stderr);
}
});
但是我认为这种方式是拿来跑命令的,并不是拿来像我这样启动一个java服务的,所以效果非常不理想,当前这样子情况是,服务可以启动,但是是在我已经跑了回调后才真实启动,并可以接受我的调用和连接的,所以感觉服务启动延迟了,而且由于这是一个服务,启动日志量很大,所以会报错Error: stdout maxBuffer exceeded,
所以nodejs应该如何去启动一个jar包服务,或者我这样的方案是不正确的,我应该如何实现更好的连接oracle数据库或mysql数据库,以什么样的方案去连接?
回答
启动java项目特别是spring boot,就是执行命令的。
你所说的启动一个java服务具体是想如何启动?
请问博主这样启动服务后是如何关闭的??