Java截获命令提示应答

Java截获命令提示应答,java,command,cmd,prompt,reply,Java,Command,Cmd,Prompt,Reply,我通过java执行了一些cmd命令,这些命令只在命令提示符中输入。 我想知道是否有一种通过Java编程获取和回复命令提示符问题的方法 e、 g:我在本地将一个远程GIT存储库添加到我的GIT结构中,因此当我执行时: $ git remote add [url], 系统会提示我输入密码。我是否可以捕获此消息(例如,将消息传递给用户)并在同一命令提示符编程对象/cmd窗口中进行回复 (AND显式存在于其中,因为在新的且因此不相关的新提示窗口中执行上述命令、读取提示回复、关闭命令提示、通过新的cmd

我通过java执行了一些cmd命令,这些命令只在命令提示符中输入。 我想知道是否有一种通过Java编程获取和回复命令提示符问题的方法

e、 g:我在本地将一个远程GIT存储库添加到我的GIT结构中,因此当我执行时:

$ git remote add [url],
系统会提示我输入密码。我是否可以捕获此消息(例如,将消息传递给用户)并在同一命令提示符编程对象/cmd窗口中进行回复


(AND显式存在于其中,因为在新的且因此不相关的新提示窗口中执行上述命令、读取提示回复、关闭命令提示、通过新的cmd命令发送密码都是无用的)。

您可以使用a来启动另一个命令的标准输入/输出/错误流。在这种情况下,进程通常不会直接与命令窗口对话,因此如果需要,您必须将其输出打印给用户


请注意,有些进程特别注意不要从标准输入读取密码,而是从控制台窗口读取密码。在这种情况下,上述方法可能不起作用。通常,命令确实提供了一些方法来指定不同的密码源。对于
git
,请搜索
git_ASKPASS
环境变量以及
core.ASKPASS
配置设置。

如果使用Runtime.getRuntime().exec执行命令,则捕获/监视子进程的输入流,并写入输出流以向其发送消息

例如


因此,我得到的响应确实是“Password:”,我如何才能再次向cmd提示符回复我的密码,以便完成验证?谢谢您提前回复!您可能正在从输出流(pout)获取“密码”,对吗?然后,要发送密码,请尝试“pw.println(“mypassword”)
    Process process = Runtime.getRuntime().exec("Command ");        
    OutputStream pout = process.getOutputStream();
    PrintWriter pw = new PrintWriter(pout);
    pw.println("Command response here");