Python процесс никогда не завершается при вызове с Java - PullRequest
1 голос
/ 23 января 2020

Я пытался настроить AI с помощью PyTorch. Все хорошо, когда я вызываю мой скрипт из консоли. Но когда я вызываю скрипт в Java `ProcessBuildera, он завершается sh, но никогда не завершается ...

Вот код ProcessBuilder

String[] cmd = {"python3", "-i" , "AI/Home-System.py",
                data.getName().replace(".csv", ""),
                "true",
                "false"};
ProcessBuilder pb = new ProcessBuilder(cmd);
Process p = pb.start();

Надеюсь, что вы сможете помогите мне

Редактировать:

Я нашел другое решение. Я вызываю этот скрипт на linux экране с

String[] cmd = {"screen", "-dmS", "AI-" + device,
                "python3", "AI/Home-System.py",
                data.getName().replace(".csv", ""),
                "true",
                "false"};
Runtime.getRuntime().exec(cmd);

1 Ответ

2 голосов
/ 23 января 2020

Считайте выходной поток процесса, так как конец этого потока позволяет вашему ProcessBuilder выйти. Или еще позвоните ProcessBuilder inheritIO().

Затем waitFor() процесс.

Вот пример примера кода , показывающий эти шаги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...