当从Java调用时,Python进程永远不会结束
我试着用PyTorch建立一个人工智能。当我从控制台调用脚本时,一切都很好。但是当我在Java`ProcessBuildera中调用脚本时,它将完成但永远不会终止 以下是ProcessBuilder代码当从Java调用时,Python进程永远不会结束,java,python,python-3.x,pytorch,Java,Python,Python 3.x,Pytorch,我试着用PyTorch建立一个人工智能。当我从控制台调用脚本时,一切都很好。但是当我在Java`ProcessBuildera中调用脚本时,它将完成但永远不会终止 以下是ProcessBuilder代码 String[] cmd = {"python3", "-i" , "AI/Home-System.py", data.getName().replace(".csv", ""), "true", "
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
退出。或者调用ProcessBuilder
的inheritIO()
然后waitFor()
下面是一些演示这些步骤的示例