gpt4 book ai didi

Java运行bash命令,同时为其提供输入并获取输出

转载 作者:行者123 更新时间:2023-12-02 07:53:47 25 4
gpt4 key购买 nike

我必须写下一些运行外部进程的java代码。此过程从 stdin 获取输入行,并在 stdout 上给出输出行。

我写的代码如下

try
{
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("./" + args[0]);
Process proc2 = rt.exec(c);
int exitVal = proc2.exitValue();
System.out.println("Process exitValue: " + exitVal);
}
catch (Throwable t){
}

其中 args[0] 是外部进程,c 是我需要提供给进程的输入(字符串)。如果运行正确,我会得到 exitVal=0,但什么也得不到。另外,我真正想要打印的是外部进程的输出(在给定的示例中为“6”)。

最佳答案

您必须在进程上使用 getInputStream()getOutputStream() 来进行通信,请参阅 javadocs .

如果不从进程中读取所有数据,它可能会挂起甚至死锁。常见问题的简要介绍,请参见this blog post 。至少,您应该从进程输出中读取所有数据。

关于Java运行bash命令,同时为其提供输入并获取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9907789/

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