当我在执行之间从命令提示符执行该命令时,我有一个用于构建过程的 ant 命令,它提示我输入一些密码,当我输入密码并按回车键时,它会继续执行并给我成功的消息。
现在我想使用 Runtime.execute(...); 以编程方式在 java 中做同样的事情;并且在提示密码之前它工作正常(我正在阅读命令提示符的输出)但是我不知道如何在 cmd 输出提示输入密码时显示一个对话框,我可以在其中输入我的密码并使用该密码我程序继续执行并成功完成。我想从命令提示符处手动做同样的事情。
所以问题是是否可以在 Runtime.execute 执行命令之间输入参数,如果是的话,如何通过参数恢复命令执行?
这是一个简单的 Swing 应用程序,它正在执行命令,我想使用 Swing Ui 对话框来获取密码。
按照 Andy Thomas 的建议更新了我的代码:
Process p1 =Runtime.getRuntime().exec("cmd /C my command", null, myProject);
BufferedReader in = new BufferedReader(
new InputStreamReader(p1.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println(line);
if(line.contains("Please enter password")){
System.out.println("Prompting for password ");
OutputStream child_stdin = p1.getOutputStream();
BufferedWriter child_writer = new BufferedWriter(new OutputStreamWriter( child_stdin ));
child_writer.write( "password123" );
child_writer.flush();
}
}
}
但没有奏效。