从Java运行exe文件时检测用户提示

从Java运行exe文件时检测用户提示,java,command,processbuilder,runtime.exec,Java,Command,Processbuilder,Runtime.exec,我正试图从我的java代码中执行一个exe文件……执行时,该文件会提示用户输入密码,然后进行密码验证 因此,基本上,我面临的问题是如何分配密码及其验证。我在以前的文章中尝试过解决方案,特别是这篇:,它使用输出流写入命令行,但这对我不起作用,因为如果执行读取操作,代码将挂起。以下是我所做的: 如何修复此代码以允许我输入密码?只是一个猜测,但您可能必须使用并重定向输入。我尝试了proces Builder,但它仍然不接受密码“在java外部手动运行时我的命令行的图像”没有链接到此处应表示为文本的内

我正试图从我的java代码中执行一个exe文件……执行时,该文件会提示用户输入密码,然后进行密码验证

因此,基本上,我面临的问题是如何分配密码及其验证。我在以前的文章中尝试过解决方案,特别是这篇:,它使用输出流写入命令行,但这对我不起作用,因为如果执行读取操作,代码将挂起。以下是我所做的:


如何修复此代码以允许我输入密码?

只是一个猜测,但您可能必须使用并重定向输入。我尝试了proces Builder,但它仍然不接受密码“在java外部手动运行时我的命令行的图像”没有链接到此处应表示为文本的内容。有关正确创建和处理流程的许多好提示,请参阅。然后忽略它引用
exec
,并使用
ProcessBuilder
创建流程。谢谢您的建议。我去过这个网站,我确信语法没有问题。我尝试执行另一个不需要密码的exe文件,一切正常。我遇到的问题是获取exec命令甚至process builder的密码。我的代码挂在一个位置等待身份验证。
basically the link above is an image of my commandline, which looks like this:

    C:/Program Files//com/ExecCodes/bin64>install.exe <hit enter>
    C:/Program Files//com/ExecCodes/bin64>Password:    <hit enter>
    C:/Program Files//com/ExecCodes/bin64>Verify:       <hit enter>
final Process p = runtime.exec(command);

             final BufferedReader input = new BufferedReader(new InputStreamReader(
                        p.getInputStream()));

             StringBuilder sb = new StringBuilder();
                char[] cbuf = new char[100];
//My code hangs here..>> while (input.read(cbuf) != -1) {
                    sb.append(cbuf);
                    if (sb.toString().contains("Password:")) {
                        break;
                    }
                    else (sb.toString().contains("Verify:")) {
                        break;
                    }
                }