Contoh dalam artikel ini menjelaskan bagaimana java menjalankan perintah Linux. Bagikan dengan semua orang untuk referensi Anda. Metode implementasi spesifiknya adalah sebagai berikut:
Copy kode kodenya sebagai berikut:
kelas publik StreamGobbler memperluas Thread {
Aliran Masukan adalah;
Jenis string;
public StreamGobbler(InputStream adalah, tipe String) {
ini.is = adalah;
this.type = mengetik;
}
menjalankan kekosongan publik() {
mencoba {
InputStreamReader isr = InputStreamReader baru(adalah);
BufferedReader br = BufferedReader baru(isr);
Garis string = null;
while ((baris = br.readLine()) != null) {
if (type.equals("Error")) {
System.out.println("Kesalahan :" + baris);
} kalau tidak {
System.out.println("Debug:" + baris);
}
}
} tangkapan (IOException ioe) {
ioe.printStackTrace();
}
}
}
shell kosong pribadi (String cmd)
{
String[] cmds = { "/bin/sh", "-c", cmd };
proses proses;
mencoba
{
proses = Runtime.getRuntime().exec(cmds);
StreamGobbler errorGobbler = StreamGobbler baru(proses.getErrorStream(), "Error");
StreamGobbler outputGobbler = new StreamGobbler(proses.getInputStream(), "Output");
errorGobbler.mulai();
outputGobbler.mulai();
mencoba
{
proses.tunggu();
}
menangkap (InterruptedException e)
{
e.printStackTrace();
}
}
menangkap (IOException e)
{
e.printStackTrace();
}
}
Parameter cmd adalah perintah Linux. Hanya satu perintah yang dapat dijalankan dalam satu waktu.
1. Catatan tentang Java Runtime.exec():
① Selalu membaca aliran data sebelum memanggil metode waitFor() ② Selalu membaca dari aliran kesalahan standar terlebih dahulu, lalu membaca aliran keluaran standar
2. Cara terbaik untuk menjalankan perintah sistem adalah dengan menulis file bat atau skrip shell.
Saya harap artikel ini bermanfaat untuk pemrograman Java semua orang.