【问题标题】:How to give input to a process builder如何向流程构建者提供输入
【发布时间】:2018-04-21 09:01:21
【问题描述】:

在我的程序中,我正在使用 Processbuilder 运行一个命令。

该命令实际上是执行python脚本。无论脚本打印什么,我只是通过打印输入流将其显示到控制台中。

问题是,在 python 脚本内部有一个 if 条件,该条件除了 Yes 或 No 来继续脚本。

我不知道如何输入是或否进程内构建器。

请帮我解决问题。

【问题讨论】:

  • 写信给ProcessOutputStream
  • @MadProgrammer 怎么做?
  • 您通常如何写信给OutputStream
  • @MadProgrammer 我试过它不起作用。
  • @MadProgrammer 实际上输入流中的 while 循环在我必须提供输入的行之前停止。

标签: java python io inputstream user-input


【解决方案1】:

最简单的方法是使用inheritIO()。 使用此选项,您可以将 java 控制台用作 Python 程序的标准输入输出。您的 java 程序将运行用于 java 和 python 程序的 python 代码和控制台,因此您可以通过 java 控制台提供输入。

ProcessBuilder test = new ProcessBuilder("python", PATH_OF_YOUR_PY_PROGRAM); 
test.inheritIO(); 
Process process = test.start(); 
process.waitFor();

注意:inheritIO() 使用控制台进行输入和输出,因此通过激活此选项,整个 python 输出也将在 java 控制台中打印。

【讨论】:

    猜你喜欢
    • 2018-03-12
    • 2014-04-12
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多