gpt4 book ai didi

java - 如何使用 Processbuilder 按顺序执行命令

转载 作者:行者123 更新时间:2023-11-30 02:10:29 25 4
gpt4 key购买 nike

我想使用 Java Process Builder 在 Windows 操作系统中执行 2 个命令(一个是批处理文件,另一个是 python 脚本)。但不幸的是无法做到这一点。我尝试了很多方法。

List<String> commands = new ArrayList<String>();
commands.add("Testbatch.bat");
commands.add("Python.exe");
commands.add("TestPythonScript.py");
ProcessBuilder probuilder = new ProcessBuilder(commands);
Process process = probuilder.start();

这里正在执行批处理文件,但不是Python。这里,进程构建器将命令视为参数(第一个命令除外)。也尝试了以下方法但没有运气。

String [] commands={"CMD","/C","Testbatch.bat","Python.exe","TestPythonScript.py"};
ProcessBuilder probuilder = new ProcessBuilder(commands);
Process process = probuilder.start();

使用 ProcessBuilder 按顺序(一个接一个)执行命令对我来说没有任何作用,我几乎花了 3 天但无法找到正确的方法。任何人都可以建议我实现相同目标的方法吗?

谢谢

苏德希尔

最佳答案

ProcessBuilder 一次只会执行一个命令 - 正如您所发现的,当您向它传递一个字符串数组时,只有第一个字符串被视为命令,其余的将被使用作为参数。

要执行多个命令,您需要为每个命令创建一个新的 ProcessBuilder

为了确保多个命令按顺序运行,您必须确保一个命令在开始下一个命令之前完成,否则执行顺序将不确定。

执行此操作的方法是获取由 ProcessBuilder.start() 返回的 Process 对象,并使用其 waitFor() 方法等待每个命令完成。

关于java - 如何使用 Processbuilder 按顺序执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50264952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com