Java'da Windows, Linux, macOS terminal komutları nasıl çalıştırılır ve eksiksiz olarak döndürülür Sonuç

Yayınlanan: 2019-02-26

Java'da mkdir, ls -ltra ve ping Linux komutlarını yürütün

Bir system command çalıştırmak nispeten basittir – bir kez yapıldığını ilk kez gördüğünüzde.

Runtime sınıfı ve Process sınıfı olmak üzere iki Java sınıfının kullanımını içerir. Temel olarak, komutu ayrı bir işlem olarak çalıştırmak için Runtime sınıfının exec method kullanırsınız.

exec yöntemini çağırmak, alt işlemi yönetmek için bir Process nesnesi döndürür. Ardından, komutun normal çıktısını ve komutun hata çıktısını okumak için Process nesnesinin getInputStream() ve getErrorStream() yöntemlerini kullanırsınız. Yürütülen komutun çıktısıyla ne yapacağınız tamamen size ve oluşturduğunuz uygulamaya bağlıdır.

ProcessBuilder.start() ve Runtime.exec yöntemleri yerel bir süreç oluşturur ve süreci kontrol etmek ve süreç hakkında bilgi almak için kullanılabilecek bir Process alt sınıfının bir örneğini döndürür.

Process sınıfı, süreçten girdi gerçekleştirme, sürece çıktı gerçekleştirme, sürecin tamamlanmasını bekleme, sürecin çıkış durumunu kontrol etme ve süreci yok etme (öldürme) için yöntemler sağlar.

İşlemler oluşturan yöntemler, yerel pencereleme işlemleri, arka plan programı işlemleri, Microsoft Windows'ta Win16/DOS işlemleri veya kabuk komut dosyaları gibi belirli yerel platformlardaki özel işlemler için iyi çalışmayabilir.

Varsayılan olarak, oluşturulan alt işlemin kendi terminali veya konsolu yoktur. Tüm standart G/Ç (örn. stdin, stdout, stderr) işlemleri, getOutputStream() , getInputStream() ve getErrorStream() yöntemleri kullanılarak elde edilen akışlar aracılığıyla erişilebilecekleri ana işleme yönlendirilecektir.

Ana süreç, alt sürece girdi beslemek ve alt süreçten çıktı almak için bu akışları kullanır. Bazı yerel platformlar, standart giriş ve çıkış akışları için yalnızca sınırlı arabellek boyutu sağladığından, giriş akışının derhal yazılmaması veya alt işlemin çıkış akışının okunamaması, alt işlemin bloke olmasına ve hatta kilitlenmesine neden olabilir.

Aşağıda referansınız için iki basit Java Örneği bulunmaktadır.

Örnek 1. Java'da mkdir, ls -ltra ve ping'i yürütün

  • CrunchifyCommandJava.java dosyası oluşturun
  • mkdir /Users/ashah/Desktop/new-folder yürütün
  • ls -ltra /Library yürütün
  • ping crunchify.com yürütün

Sistem ayarlarınıza göre yukarıdaki programda yolu buna göre değiştirdiğinizden emin olun.

Eclipse konsolu Çıktı:

Sadece yukarıdaki programı bir Java Uygulaması olarak çalıştırın ve benzer sonucu göreceksiniz.

Örnek-2.

  • CrunchifyRunCommand.java
  • Sisteminizde çalışan tüm işlemlerin listesini almak için ps -few komutunu çalıştırın.

Eclipse konsolu Çıktı:

Bunlar MacBook Pro'mda çalışan işlemlerden bazıları. Birkaç tane daha var ama çok az yapıştırıldı.

Umarım bu eğitim, basit Java programını kullanarak herhangi bir linux, macOS terminal komutunu çalıştırmanıza yardımcı olur. Herhangi bir sorunuz için bana bildirin.