Cara Menjalankan Windows, Linux, perintah terminal macOS di Java dan mengembalikan Hasil lengkap

Diterbitkan: 2019-02-26

Jalankan perintah Linux mkdir, ls -ltra dan ping di Java

Menjalankan system command relatif sederhana – setelah Anda melihatnya selesai pertama kali.

Ini melibatkan penggunaan dua kelas Java, kelas Runtime dan kelas Proses. Pada dasarnya, Anda menggunakan exec method dari kelas Runtime untuk menjalankan perintah sebagai proses terpisah.

Memanggil metode exec mengembalikan objek Proses untuk mengelola subproses. Kemudian Anda menggunakan metode getInputStream() dan getErrorStream() dari objek Process untuk membaca output normal dari perintah, dan output error dari perintah. Apa yang Anda lakukan dengan output dari perintah yang dijalankan sepenuhnya terserah Anda dan aplikasi yang Anda buat.

Metode ProcessBuilder.start() dan Runtime.exec membuat proses asli dan mengembalikan turunan dari subkelas Process yang dapat digunakan untuk mengontrol proses dan memperoleh informasi tentangnya.

Kelas Process menyediakan metode untuk melakukan input dari proses, melakukan output ke proses, menunggu proses selesai, memeriksa status keluar dari proses, dan menghancurkan (membunuh) proses.

Metode yang membuat proses mungkin tidak bekerja dengan baik untuk proses khusus pada platform asli tertentu, seperti proses windowing asli, proses daemon, proses Win16/DOS di Microsoft Windows, atau skrip shell.

Secara default, subproses yang dibuat tidak memiliki terminal atau konsol sendiri. Semua operasi I/O standarnya (yaitu stdin, stdout, stderr) akan dialihkan ke proses induk, di mana mereka dapat diakses melalui aliran yang diperoleh menggunakan metode getOutputStream() , getInputStream() , dan getErrorStream() .

Proses induk menggunakan aliran-aliran ini untuk memasukkan input ke dan mendapatkan output dari subproses. Karena beberapa platform asli hanya menyediakan ukuran buffer terbatas untuk aliran input dan output standar, kegagalan untuk segera menulis aliran input atau membaca aliran output dari subproses dapat menyebabkan subproses untuk memblokir, atau bahkan kebuntuan.

Di bawah ini adalah dua Contoh Java sederhana untuk referensi Anda.

Contoh 1. Jalankan mkdir, ls -ltra dan ping di Java

  • Buat file CrunchifyCommandJava.java
  • Jalankan mkdir /Users/ashah/Desktop/new-folder
  • Jalankan ls -ltra /Library
  • Jalankan ping crunchify.com

Pastikan untuk mengubah jalur yang sesuai dalam program di atas sesuai pengaturan sistem Anda.

Keluaran konsol Eclipse:

Jalankan saja program di atas sebagai Aplikasi Java dan Anda akan melihat hasil yang serupa.

Contoh-2.

  • CrunchifyRunCommand.java
  • Jalankan perintah ps -few untuk mendapatkan daftar semua proses yang berjalan di sistem Anda.

Keluaran konsol Eclipse:

Ini adalah beberapa proses yang berjalan di MacBook Pro saya. Ada beberapa lagi tetapi yang disisipkan sangat sedikit.

Saya harap tutorial ini membantu Anda menjalankan perintah terminal linux, macOS apa pun menggunakan program Java sederhana. Beri tahu saya jika ada pertanyaan.