我试图用PyTorch设置AI。当我从控制台调用脚本时,一切都很好。但是当我在Java`ProcessBuildera中调用脚本时,它将完成但永远不会终止...

这是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);

最佳答案

读取流程的输出流,因为此流的末尾允许您的ProcessBuilder退出。否则调用ProcessBuilderinheritIO()

然后waitFor()该过程。

这是一些sample code显示这些步骤。

关于java - 从Java调用时Python进程永远不会完成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59879006/

10-12 22:20