Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menjalankan Perintah Shell dari dalam Program Java?

Bagaimanakah Saya Boleh Menjalankan Perintah Shell dari dalam Program Java?

Linda Hamilton
Linda Hamiltonasal
2024-12-18 10:50:11618semak imbas

How Can I Run Shell Commands from within a Java Program?

Menjalankan Perintah Shell daripada Java: Panduan Terperinci

Dalam Java, anda boleh melaksanakan perintah sistem menggunakan kaedah Runtime.exec(). Walau bagaimanapun, memahami cara untuk melaksanakan arahan boleh menjadi mencabar.

Membuka Prompt Perintah

Kod yang anda berikan dengan betul membuka command prompt:

Runtime rt = Runtime.getRuntime();
rt.exec(new String[]{"cmd.exe","/c","start"});

Ini membuka tetingkap gesaan arahan baharu.

Melaksanakan Perintah

Untuk menjalankan arahan dalam command prompt, anda boleh menambahkan arahan pada baris arahan sebelum melaksanakannya. Sebagai contoh, untuk menukar direktori dan menjalankan arahan tertentu:

Menukar Direktori

// Change directory and run "dir" command
ProcessBuilder builder = new ProcessBuilder(
    "cmd.exe", "/c", "cd \"C:\Program Files\Flowella\" && dir");

Baris arahan di atas memberitahu cmd.exe untuk melaksanakan arahan berikut mengikut urutan :

  1. Tukar direktori semasa kepada "C:Program FilesFlowella"
  2. Jalankan arahan "dir" dalam direktori itu

Menjalankan Perintah Lain

Anda boleh menjalankan sebarang arahan dengan mengubah suai arahan baris selepas "cd". Contohnya, untuk menjalankan arahan "ping":

ProcessBuilder builder = new ProcessBuilder(
    "cmd.exe", "/c", "cd \"C:\Program Files\Flowella\" && ping www.google.com");

Menggunakan ProcessBuilder

Kelas ProcessBuilder menyediakan cara yang lebih serba boleh untuk melaksanakan arahan. Ia membolehkan anda:

  • Mengubah hala ralat standard proses dan aliran output
  • Menetapkan pembolehubah persekitaran
  • Menetapkan direktori kerja

Dalam contoh di atas, kami mengubah hala ralat standard proses ke output standardnya untuk memudahkan pembacaan output.

Contoh Penggunaan

Kod berikut melaksanakan arahan "dir" dalam direktori yang ditentukan:

import java.io.*;

public class CmdCommand {
    public static void main(String[] args) throws Exception {
        String dir = "C:\Program Files\Flowella";
        ProcessBuilder builder = new ProcessBuilder(
            "cmd.exe", "/c", "cd \"" + dir + "\" && dir");
        builder.redirectErrorStream(true);
        Process p = builder.start();
        BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line;
        while (true) {
            line = r.readLine();
            if (line == null) { break; }
            System.out.println(line);
        }
    }
}

Kod ini menukar arus direktori ke "C:Program FilesFlowella" dan laksanakan arahan "dir", mencetak output ke konsol.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjalankan Perintah Shell dari dalam Program 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