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

时间:2015-10-29 04:12:12

标签: java command processbuilder runtime.exec

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

所以基本上,我遇到的问题是能够分配密码及其验证。已经尝试过关于此主题的先前帖子的解决方案,尤其是这一个:Java: Detecting user prompt when running a batch script from Java,它使用输出流写入命令行但这对我来说不起作用,因为如果执行读操作,代码会挂起。这就是我所做的:

image of my command line when run manually outside java

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>

string command ="C:/Program Files//com/ExecCodes/bin64/install.exe";

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;
                    }
                }

如何修复此代码以使我输入密码.. ???

0 个答案:

没有答案