gpt4 book ai didi

Java 执行外部程序并捕获输出

转载 作者:太空宇宙 更新时间:2023-11-04 10:10:35 25 4
gpt4 key购买 nike

所以我尝试执行外部程序并捕获输出。目前,执行命令的部分工作正常(使用 .bat 文件),我可以在 cmd 窗口上看到输出。

不需要读取输出的部分,它似乎堆栈在我的 while

这是我尝试过的:

String[] command = {"cmd.exe", "/C", "Start", "d:\\batFile.bat"};
Process process = Runtime.getRuntime().exec(command);
InputStream is = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));

String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}

更新

这是我的.bat 文件:

docker volume create --name=mydb
timeout 3
docker run -d -p 27017:27017 -v mydb:/data/db mongo
timeout 3

最佳答案

也许您可以尝试像这样重定向输出:

Process runtimeProcess1;
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C","Start","d:\\batFile.bat");

pb.redirectOutput(Redirect.INHERIT);
pb.redirectError(Redirect.INHERIT);
pb.redirectInput(Redirect.INHERIT);

runtimeProcess1 = pb.start();

int processComplete1 = runtimeProcess1.waitFor();

关于Java 执行外部程序并捕获输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52389986/

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