• Masim “Vavai” Sugianto

    Founder PT. Excellent Infotama Kreasindo– perusahaan email services provider (ESP) dan menjadi konsultan pada berbagai instansi pemerintah, korporasi besar, lembaga perbankan dan institusi pendidikan di Indonesia.

    Lebih detail tentang Vavai.




  • Publishing

  • Recent Posts

    • TOEFL ITP Score (Kedua)
    • Bisnis Kelapa Muda
    • Model Usaha
    • Back-End Developer, Front-End Developer & Staff IT Support
    • Markas Excellent Danita
  • Recent Comments

    • zeke on Mudah Belajar Java Bersama [SuSE] Linux – 2, Installasi Java
    • paket wisata karimunjawa on Mengecek dan Memperbaiki Performa Web Menggunakan GTMetrix dan Google Pagespeed Insights
    • bang amin on Mounting Harddisk / Partisi Windows pada [SuSE] Linux
    • MIRA on PR 6 untuk Komunitas openSUSE Indonesia
    • Baharuddin on Tips Menghitung PPN dan Dasar Pengenaan Pajak dari Nilai Total
  • Archives

    • April 2022
    • January 2022
    • July 2021
    • June 2021
    • February 2021
    • January 2021
    • December 2020
    • August 2020
    • July 2020
    • April 2020
    • March 2020
    • August 2019
    • July 2019
    • June 2019
    • March 2019
    • February 2019
    • January 2019
    • November 2018
    • October 2018
    • August 2018
    • May 2018
    • April 2018
    • January 2018
    • December 2017
    • July 2017
    • December 2016
    • November 2016
    • April 2016
    • March 2016
    • November 2015
    • July 2015
    • April 2015
    • November 2014
    • October 2014
    • February 2014
    • January 2014
    • December 2013
    • November 2013
    • October 2013
    • September 2013
    • August 2013
    • June 2013
    • May 2013
    • March 2013
    • February 2013
    • January 2013
    • December 2012
    • November 2012
    • October 2012
    • September 2012
    • August 2012
    • July 2012
    • June 2012
    • May 2012
    • April 2012
    • March 2012
    • February 2012
    • January 2012
    • December 2011
    • November 2011
    • October 2011
    • September 2011
    • August 2011
    • July 2011
    • June 2011
    • May 2011
    • April 2011
    • March 2011
    • February 2011
    • January 2011
    • December 2010
    • November 2010
    • October 2010
    • September 2010
    • August 2010
    • July 2010
    • June 2010
    • May 2010
    • April 2010
    • March 2010
    • February 2010
    • January 2010
    • October 2008
    • September 2008
    • August 2008
    • July 2008
    • June 2008
    • May 2008
    • April 2008
    • March 2008
    • February 2008
    • January 2008
    • December 2007
    • November 2007
    • October 2007
    • September 2007
    • August 2007
    • July 2007
    • June 2007
    • May 2007
    • April 2007
    • March 2007
  • Home
  • Bisnis & Marketing
  • Computer & IT Related
  • Lifestyle
  • Publishing
  • Free Stuff
  • About
  • Kontak

Execute Linux Shell Command within Java Program

May 21, 2007

Java memang memiliki pustaka sendiri, baik yang native terhadap suatu sistem operasi maupun yang bersifat OS independent, namun kebutuhan untuk menjalankan fungsi eksternal suatu OS kadang tetap dibutuhkan.

Salah satu fungsi yang bisa digunakan adalah Runtime.exec yang bisa dimanfaatkan untuk melakukan encapsulasi perintah dari bash shell (terminal) pada Linux.


Sebagian programmer mungkin berargumen, mengapa mesti menggunakan perintah bash untuk melakukan suatu pekerjaan, padahal sebagian fungsi tersebut sudah tersedia pada pustaka Java. Jawabnya, ada banyak hal yang bisa kita lakukan dengan menjalankan suatu perintah secara langsung tanpa menggunakan pustaka.

Contohnya adalah konfigurasi pada email server postfix. Email server postfix mendukung perintah postconf -e item_konfigurasi=pilihan_konfigurasi. Dengan melakukan encapsulasi perintah tersebut, kita bisa membuatkan front-end GUI yang mempermudah proses instalasi postfix.

Ide ini muncul setelah saya membuat skrip sederhana untuk otomatisasi install postfix pada SuSE Linux.

Berikut adalah kode sederhana untuk menjalankan perintah shell pada program Java.

try {
// Execute a command without arguments
String command = "ls";
Process child = Runtime.getRuntime().exec(command);

// Execute a command with an argument
command = "ls /tmp";
child = Runtime.getRuntime().exec(command);
} catch (IOException e) {
}

Jika argumen memiliki spasi, kita bisa melakukan overload agar perintah dan argumennya dikirim dalam bentul array, seperti contoh berikut :

try {
// Execute a command with an argument that contains a space
String[] commands = new String[]{"grep", "hello world", "/tmp/f.txt"};
commands = new String[]{"grep", "hello world", "c:\\Documents and Settings\\f.txt"};
Process child = Runtime.getRuntime().exec(commands);
} catch (IOException e) {
}

Contoh lain adalah menjalankan suatu class dengan argumen dan menampilkan hasilnya. Lihat contoh kode berikut :

import java.io.*;
public class ProcTest
{
public static void main(String args[]) throws IOException
{
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(args);
BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
while(br.ready())
{
System.out.println(br.readLine());
}
}
}

Compile dan jalankan dengan perintah java ProcTest ls.

Semoga bermanfaat.

javaMigrasi ProgrammingpemrogrammanprogrammingTips, Tricks & Tutorial
Share

Migrasi Programming

Muhammad Rivai Andargini

You might also like

Plugins Gallery untuk Menggantikan Gallery Block WordPress (Images Size)
July 17, 2020
Update Script untuk Ubuntu Initial Server Setup
April 20, 2020
Tips Bash Script : Menghapus File yang Dibuat Sebelum Tanggal Tertentu
September 1, 2013

3 Comments


Ndut
June 10, 2008 at 1:32 am

wah tulisan yang bgs tu mas, tapi saya coba dengan perintah :

try {
// Execute a command with an argument that contains a space
String[] commands = new String[]{“ls > /home/temp.txt”};
commands = new String[]{“ls > /home/temp.txt”};
Process child = Runtime.getRuntime().exec(commands);
} catch (IOException e) {
}

kok ga ada output nya ya? harus nya kan tercipta file temp.txt, yang isi file nya output nya ls…mohon bantuannya mas…
Makasih



Vavai
June 10, 2008 at 5:49 am

Halo Ndut,

Perintah diatas bukan untuk membuat file tapi melakukan eksekusi. Jadi commandnya yang dieksekusi, bukan pembuatannya.

ls kan buat menampilkan, bukan membuat file

Coba pakai perintah ini :
echo “Hello Vavai” > /home/user/test.txt



Ndut
June 11, 2008 at 2:09 am

tengkyu mas…tapi maxud nya bkn gt, saya ingin membuat sebuat file dengan nama (misalnya) temp.txt di dlm folder /home/user/ dan isi dari file tersebut adalah
hasil dari eksekusi dari perintah ls.

makasih mas



Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA
Refresh

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  • Artikel



  • Blogroll

    • DNS Propagation Checker
    • Instagram Photo/Video Downloader
    • PT. Excellent Infotama Kreasindo
  • Publishing

  • Recent Posts

    • TOEFL ITP Score (Kedua)
    • Bisnis Kelapa Muda
    • Model Usaha
    • Back-End Developer, Front-End Developer & Staff IT Support
    • Markas Excellent Danita
    • Pekerjaan Excellent
    • iMac 2021
    • Problem Solving
    • Kolam Mina Padi/Mina Genjer
    • Team Excellent


  • Links Ads

  • Recent Post

    • TOEFL ITP Score (Kedua)
    • Bisnis Kelapa Muda
    • Model Usaha
    • Back-End Developer, Front-End Developer & Staff IT Support
    • Markas Excellent Danita
    • Pekerjaan Excellent
    • iMac 2021
    • Problem Solving
    • Kolam Mina Padi/Mina Genjer
    • Team Excellent
    • Telur Bebek Mentah
    • Kursi Kayu dan Gerobak Angkringan
    • Kebun Pisang Barangan dan Ambon Kuning
    • Ternak Bebek
    • Data Statistik Covid dan Edukasi Media
  • Recent Comments

    • zeke on Mudah Belajar Java Bersama [SuSE] Linux – 2, Installasi Java
    • paket wisata karimunjawa on Mengecek dan Memperbaiki Performa Web Menggunakan GTMetrix dan Google Pagespeed Insights
    • bang amin on Mounting Harddisk / Partisi Windows pada [SuSE] Linux
    • MIRA on PR 6 untuk Komunitas openSUSE Indonesia
    • Baharuddin on Tips Menghitung PPN dan Dasar Pengenaan Pajak dari Nilai Total
    • Taufan on Excellent Samba 4 Appliance, Salah Satu Appliance Terpopuler di SUSE Gallery
    • perbaikan boiler on Manusia Utama : Mengurangi Makan Mengurangi Tidur
    • Lampu PJU Tenaga Surya on Selingan Bekerja
    • joy on Peresmian Taman Bacaan Excellent : Rencana Pembelian Rak Buku, Sajadah & Meja Pingpong
    • joy on Instalasi ATI VGA Driver pada Linux BlankOn 7 “Pattimura” & Ubuntu 11.04 “Natty Narwhal”