Я запускаю процесс Windows (написанный на C ++, но у меня нет источников) из кода Java следующим образом:
Process p1 = Runtime.getRuntime().exec(cmdAndParams);
p1.waitFor();
Моя проблема в том, что метод waitFor () никогда не заканчивается.Таким образом, я попытался запустить процесс в простой оболочке, и он корректно заканчивается множеством отпечатков в оболочке (стандартный вывод, я думаю).
Таким образом, я решил создать и запустить поток, читающий стандартный вывод, даже если япока не нужны эти выходы.Это устранило проблему.
Итак, мой вопрос следующий: является ли это решение «стандартом Java для запуска и ожидания внешних процессов, имеющих выходные данные», или это означает, что существует проблема где-то в собственном процессе?Если такая проблема существует, какая «ошибка» программирования на C ++ может быть причиной возникновения проблемы?