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