gpt4 book ai didi

java - 从 Java 运行交互式命令行应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:22:45 25 4
gpt4 key购买 nike

我通常使用 java.lang.ProcessBuilder 和 java.lang.Process 来运行外部命令行程序,它可以很好地处理运行完成命令。例如,这将在工作目录中使用参数“myArg”运行“myProgram”:

List<String> commandLine = new ArrayList<String>();
commandLine.add("myProgram");
commandLine.add("myArg");
ProcessBuilder builder = new ProcessBuilder(commandLine);
builder.redirectErrorStream(true);
Process process = builder.start();

但是,假设我想运行脚本或程序或具有交互式输入的东西(它在启动后提示我进行更多输入)。我可以使用与上述类似的代码在 Java 中执行此操作,还是需要不同的方法?或者是否有一些图书馆可以帮助我解决这个问题?

最佳答案

根据 the documentation您应该能够重定向输入和输出流。这告诉它使用来自父进程的 System.in/System.out:

builder.redirectInput(ProcessBuilder.Redirect.INHERIT);
builder.redirectOutput(ProcessBuilder.Redirect.INHERIT);

如果你想把东西写入进程的输入:

If the source is Redirect.PIPE (the initial value), then the standard input of a subprocess can be written to using the output stream returned by Process.getOutputStream(). If the source is set to any other value, then Process.getOutputStream() will return a null output stream.

关于java - 从 Java 运行交互式命令行应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12376925/

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