Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Melaksanakan Berbilang Perintah Prompt Berbilang Menggunakan Java?

Bagaimanakah Saya Boleh Melaksanakan Berbilang Perintah Prompt Berbilang Menggunakan Java?

Barbara Streisand
Barbara Streisandasal
2024-11-28 06:01:18533semak imbas

How Can I Reliably Execute Multiple Command Prompt Commands Using Java?

Melaksanakan Perintah Prompt Perintah Menggunakan Java

Percubaan untuk melaksanakan arahan daripada command prompt melalui Java menggunakan kod berikut:

String command = "cmd /c start cmd.exe";
Process child = Runtime.getRuntime().exec(command);
OutputStream out = child.getOutputStream();
out.write("cd C:/ /r/n".getBytes());
out.flush();
out.write("dir /r/n".getBytes());
out.close();

mungkin tidak menghasilkan hasil yang diingini, membiarkan command prompt terbuka tanpa melaksanakan yang ditentukan arahan.

Untuk menangani perkara ini, pertimbangkan pendekatan berikut:

String[] command = {"cmd"};
Process p = Runtime.getRuntime().exec(command);
new Thread(new SyncPipe(p.getErrorStream(), System.err)).start();
new Thread(new SyncPipe(p.getInputStream(), System.out)).start();
PrintWriter stdin = new PrintWriter(p.getOutputStream());
stdin.println("dir c:\ /A /Q");
stdin.close();
int returnCode = p.waitFor();
System.out.println("Return code = " + returnCode);

Selain itu, tentukan kelas SyncPipe untuk memudahkan pemindahan data:

class SyncPipe implements Runnable {
  public SyncPipe(InputStream istrm, OutputStream ostrm) {
    istrm_ = istrm;
    ostrm_ = ostrm;
  }

  public void run() {
    try {
      final byte[] buffer = new byte[1024];
      for (int length = 0; (length = istrm_.read(buffer)) != -1; ) {
        ostrm_.write(buffer, 0, length);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  private final OutputStream ostrm_;
  private final InputStream istrm_;
}

Kaedah ini memberikan keupayaan untuk merangkai berbilang arahan dan melaksanakannya dalam satu proses Windows. Tambahan pula, ia menyediakan maklum balas masa nyata dan mekanisme pengendalian ralat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Berbilang Perintah Prompt Berbilang Menggunakan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn