Я использовал эту строку для выполнения скрипта Python из Java-приложения:
Process process = Runtime.getRuntime().exec("python foo.py", null, directory);
Скрипт запускает TCP-сервер, который связывается с моим Java-приложением и другими клиентами.
Когда яотлаживал сценарий, у меня было несколько отпечатков консоли тут и там, и все было хорошо.Как только скрипт был запущен из Java Code, мой TCP-сервер через определенное время не отвечал.После некоторого времени отладки и разочарований я удалил свои отпечатки из сценария, и все заработало как положено.
Кажется, что есть некоторая память, выделенная для стандартного вывода процесса и потока ошибок, и если вы не используетеэто процесс застревает при попытке записи в полный буфер.
Как запустить процесс, чтобы мне не приходилось использовать стандартный поток вывода?Я хотел бы сохранить распечатки для отладки, но не хочу запускать поток, который читает поток, который мне не нужен.