require('child_process').spawn()
не является синхронизирующим вызовом. Этот метод порождает дочерний процесс асинхронно, не блокируя цикл событий Node.js.
Если вы попробуете require('child_process').spawnSync()
, он будет ждать процесса C ++.
Так что я думаю, что в Java вам нужно запустить этот процесс с новым потоком. В документации написано
Обратите внимание, что этот класс не синхронизирован. Если несколько потоков обращаются к
Экземпляр ProcessBuilder одновременно и хотя бы один из потоков
изменяет один из атрибутов структурно, он должен быть синхронизирован
внешне.
DOC
Если вы хотите запустить его асинхронно, возможно, вам нужно создать новый экземпляр вместо использования одного экземпляра.
Process p = new ProcessBuilder("myCommand", "myArg").start();