Здравствуйте, пользуюсь child_process для запуска джава бота через nodejs оболочку. При запуске через exec все работает нормально, но exec неудобен тем, что буферизирует весь вывод программы и выдает его в конце работы большим бандлом, а хотелось бы реагировать на сообщения, которые бот в stdout выводит. Для этого есть spawn, который позволяет подписываться на сообщения из stdout и stderr, но тут возникает проблема. Запись команды в spawn сделана так, что ты должен вписать отдельно команду, и отдельно передать ее аргументы. За этим кроется проблема, поскольку spawn по всей видимости неправильно склеивает команду с аргументами, и java выдает мне ошибку
Unrecognized option: -jar "E:\Java root\intelliJ IDEA\...."
При выполнении команды через exec все работает нормально. Вот код двух примеров:
const stream = spawn("C:\\Users\\user\\.jdks\\corretto-17.0.4\\bin\\java.exe", [
'-jar \"E:\\Java root\\intelliJ IDEA\\EnglishStartupBot\\out\\artifacts\\EnglishStartupBot_jar\\EnglishStartupBot.jar\"'
])//выдает ошибку
exec("C:\\Users\\user\\.jdks\\corretto-17.0.4\\bin\\java.exe -jar \"E:\\Java root\\intelliJ IDEA\\EnglishStartupBot\\out\\artifacts\\EnglishStartupBot_jar\\EnglishStartupBot.jar\"", (error, stdout, stderr) => {})
//работает нормально