2

Java コードからコマンド プロンプトを開き、いくつかのコマンドを実行する必要があります。その後、そのコマンド プロンプト出力を Java コードでリアルタイムで読み取る必要があります。

以下のコードを試してみましたが、cmd プロンプトの表示/出力を Java で読み取ることができませんでした。

File file = new File("D://Projects/quantum");
Process proc = rt.exec("cmd.exe /c start cmd.exe /k \"ping localhost\"", null, file);

try {
    BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
    StringBuffer buffer = new StringBuffer();
    String line = null;
    while ((line = br.readLine()) != null) {
        System.out.println(line);

    }
} catch (IOException ioe) {
    ioe.printStackTrace();
}
4

2 に答える 2

3

これをチェックしてください

Process p=Runtime.getRuntime().exec("cmd /c dir"); 
p.waitFor(); 
BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream())); 
String line=reader.readLine(); 
于 2012-12-14T10:53:38.133 に答える
2

これは、実行中の非常に壊れやすい実装ですProcess

一般的なヒント。

  • When Runtime.exec() will notのすべての推奨事項を読んで実装します。
  • それが完了したら、記事がメソッドを明示的に参照しているという事実を無視し、を使用してRuntime.exec()を確立します。これにより、最初にリンクされた記事の推奨事項のいくつかを実装しやすくなります。ProcessProcessBuilder
  • ただし、その場合でも、Stringコマンドをコマンドの引数に分割してString[]ください。
于 2012-12-15T08:09:13.967 に答える