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
Lepaskan: 2024-11-28 06:01:18
asal
503 orang telah melayarinya

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();
Salin selepas log masuk

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);
Salin selepas log masuk

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_;
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan