2

コマンドプロンプトでのみ入力されるJavaを介していくつかのcmdコマンドを実行していました。Java 経由でコマンド プロンプトの質問をプログラムで取得して返信する方法があるかどうか疑問に思っていました。

例: リモート GIT リポジトリをローカルの GIT 構造に追加するので、実行すると:

$ git remote add [url],

パスワードの入力を求められます。このメッセージをキャッチして (たとえば、メッセージをユーザーに渡すために)、同じコマンド プロンプト プログラミング オブジェクト/コマンド ウィンドウで返信できますか。

(上記のコマンドを実行したり、プロンプトの応答を読んだり、コマンドプロンプトを閉じたり、新しい、したがって関連のない新しいプロンプトウィンドウで新しいcmdコマンドを介してパスワードを送信したりするのは役に立たないため、ANDは明示的にそこにあります)。

4

2 に答える 2

3

Runtime.getRuntime().exec を使用してコマンドを実行している場合は、サブプロセスの入力ストリームをキャプチャ/監視し、出力ストリームに書き込んでメッセージを送信します。

例えば

    Process process = Runtime.getRuntime().exec("Command ");        
    OutputStream pout = process.getOutputStream();
    PrintWriter pw = new PrintWriter(pout);
    pw.println("Command response here");
于 2012-10-09T17:14:33.940 に答える
0

ProcessBuilderaを使用してそのコマンドを として開始することにより、別のコマンドの標準入力/出力/エラー ストリームと対話できますProcess。その場合、プロセスは通常、コマンド ウィンドウと直接対話しないため、必要に応じてその出力をユーザーに出力する必要があります。

一部のプロセスでは、パスワードを標準入力からではなく、代わりにコンソール ウィンドウから読み取るように特に注意することに注意してください。その場合、上記が機能しない場合があります。通常、コマンドはパスワードの別のソースを指定する手段を提供します。の場合は、構成設定だけでなく環境変数もgit検索してください。GIT_ASKPASScore.askpass

于 2012-10-09T17:07:55.783 に答える