java - 从 Java 调用时 Python 进程永远不会完成

标签 java python python-3.x pytorch

我尝试使用 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/

相关文章:

java - 从java中的excel获取多项式函数的值

java - 制作一个应用程序,只要打开应用程序就开始录音

java - 如何在 Spring Boot application.properties 中配置 Oracle RAC

java - 插入新记录时如何从数据库获取自动生成的值?

python - 如何处理 N812 小写 'ugettext_lazy' 作为 pep8 命名的非小写 '_' 导入

Python 不按顺序打印消息

python - 是否可以在 python 中声明一个具有字符串值和占位符的变量?

python - .format 中的大括号

python - Pandas - 添加一列,其值是根据当前行和上一行中的另一列值计算的

python-3.x - 带有图像的Python 3 EmailMessage html消息