使用java运行exe文件并为其提供输入

使用java运行exe文件并为其提供输入,java,exe,processbuilder,Java,Exe,Processbuilder,我有一个exe文件,比如说Factorial.exe 当我运行它时,它需要n并计算n。无法将程序更改为作为命令行参数传递n 我知道如何使用ProcessBuilder来运行它,但我不知道如何为它提供输入。我认为其中一个选项是使用重定向,因此我们有: Factorial.exe < input.txt Factorial.exe

我有一个exe文件,比如说
Factorial.exe

当我运行它时,它需要
n
并计算
n。无法将程序更改为作为命令行参数传递
n

我知道如何使用ProcessBuilder来运行它,但我不知道如何为它提供输入。我认为其中一个选项是使用重定向,因此我们有:

Factorial.exe < input.txt 
Factorial.exe
input.txt中只有一个数字

但我不能简单地打电话

ProcessBuilder builder = new ProcessBuilder("Factorial.exe < input.txt");
ProcessBuilder=newprocessbuilder(“Factorial.exe

ProcessBuilder=newprocessbuilder(“Factorial.exe”,“input.txt”);
作为ProcessBuilder的输入


我找到了一种方法,但我不能称之为答案,这只是一种方法。 我使用适当的输入创建input.txt文件。 我使用ProcessBuilder通过以下命令调用批处理文件: Factorial.exe
这使它能够工作,我将使用它,但我仍然好奇是否有更好的方法。

只需将参数添加到ProcessBuilder构造函数中:

new ProcessBuilder("Factorial.exe","5").start();

像这样的?不,在这个问题中,用户将输入文件提供给java程序。我想使用javax为exe文件提供输入文件。您的factorial.exe是否正在等待某个事件(例如,按下enter按钮)?
new ProcessBuilder("Factorial.exe","5").start();