Electron或node如何更好的调用jar包启动一个spring boot的服务

我在开发一个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数据库,以什么样的方案去连接?

阅读 13.5k
2 个回答

启动java项目特别是spring boot,就是执行命令的。
你所说的启动一个java服务具体是想如何启动?

新手上路,请多包涵

请问博主这样启动服务后是如何关闭的??

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题