0
我正在構建一個小工具,應該讓我啓動一個Tomcat服務器。電子打開並保持打開cmd.exe
很容易,我只是想要一個按鈕來啓動startup.bat
和另一個調用shutdown.bat
。
它工作得很好(服務器啓動和停止),但完全在忍者模式下,我無法設法使用日誌獲取Tomcat控制檯。 如果我打電話給startup.bat
,可以從經典命令行打開一個窗口,其中包含日誌。 我試過exec
,execFile
,spawn
。我試着直接撥打bat
,cmd.exe
,甚至試過start
。但我無法獲得該窗口。
我知道我可以得到流,但我不想打擾。
此外,我只是在Windows上使用該工具,現在不需要考慮其他平臺。
const ipc = require('electron').ipcMain;
const execFile = require('child_process').execFile;
ipc.on('start-local-tomcat', function (event) {
execFile('cmd.exe', ['D:\\DEV\\apache-tomcat-8.0.12\\bin\\startup.bat'],
{env: {'CATALINA_HOME': 'D:\\DEV\\apache-tomcat-8.0.12'}},
function (error, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
})
});
ipc.on('stop-local-tomcat', function (event) {
execFile('cmd.exe',['D:\\DEV\\apache-tomcat-8.0.12\\bin\\shutdown.bat'],
{env: {'CATALINA_HOME': 'D:\\DEV\\apache-tomcat-8.0.12'}},
function (error, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
})
});