Running Command Prompt’s Command from JAVA


Seperti yang anda ketahui, kita dapat menjalan kan command line di dalam JAVA. Sebagai contoh saya ingin men-compress file, saya dapat menggunakan software third party seperti 7zip untuk melakukan proses zipping, sedangkan JAVA hanya sebagai trigger untuk menjalankan command line nya saja.

Kode JAVA yang diperlukan untuk merunning command line kira-kira seperti ini:

public class ZipUtil {

 public static void zipFile(String appPath, String archiveName, String fromDirectory)throws IOException {

String s = null;
Process p = Runtime.getRuntime().exec(appPath + " u " + archiveName + " " + fromDirectory);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));

// read the output from the command
//logger.info("Here is the standard output of the command:\n");
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}

// read any errors from the attempted command
while ((s = stdError.readLine()) != null) {
System.out.println(s);

}
}
}

Tapi ada permasalahan disini, jika kita ingin merunning command-command dasar dari command prompt itu sendiri, seperti copy, dir, del, dll akan muncul error.Penjelasan kenapa error ini bisa terjadi ada pada paragraph di bawah ini:

Perlu diketahui saat kita memanggil method getRuntime() dari Class Runtime artinya system harus merunning executable file (ada di dalam parameter) dan tidak ada return value. Saat kita coba menjalankan copy file1 file2 system akan mencoba mencari file copy.exe pada System Path di komputer, jika ada file copy.exe maka file inilah yang akan di execute, dengan file1 dan file2 sebagai parameternya.

Lalu bagaimana caranya untuk merunning command prompt’s command melalui JAVA. Caranya sangat simple, apa nama file executable untuk menjalankan command prompt? Jawabannya adalah command prompt itu sendiri – cmd.exe. Jadi untuk menjalankan command prompt’s command melalui JAVA adalah dengan cara menggunakan command line seperti ini:

cmd.exe /C [command] [parameter1] [parameter2] .. [parameter..]
Advertisement

Concat Two File with Command Prompt


Bagi para pengguna *NIX, pasti sudah familiar dengan fungsi CAT. Secara garis besar fungsi CAT digunakan untuk mem-print isi sebuah file ke dalam terminal.

cat file1

Lalu untuk Join 2 file menjadi 1 file biasanya menggunakan command berikut

cat file1 file2 > file3

Konsep di atas adalah konsep dasar yang akan saya gunakan. Tapi bagaimana cara menerapkannya untuk OS Windows. Khususnya Windows XP – karena saat ini saya asih menggunakan Windows XP sebagai OS. Pada Command Prompt ada command TYPE, yang fungsinya sama dengan command CAT pada *NIX. Untuk selebihnya sama saja syntaxnya dengan di *NIX

type file1 file2 >> file3

Keterangan:

Tanda >> artinya, Jika file3 NOT EXISTS maka akan di create, jika sudah ada maka data yang baru akan di append ke data sebelumnya.

Tanda > artinya, file3 akan direcreate, EXISTS or NOT EXISTS.

Command Prompt Date Problem


Pendahuluan

Artikel ini saya buat karena sebelumnya saya mengalami kesulitan dalam mengekstraksi tanggal (DATE) di command prompt. Sebelumnya saya pernah menggunakan Sistem Operasi di UNIX, di OS UNIX ini sangat mudah sekali untuk mengekstraksi tanggal (DATE), dengan adanya perintah substring. Tapi lain halnya dengan sistem command prompt di Windows.

ISI

Coba anda ketikkan perintah “echo %date%” di command prompt, Output yang keluar adalah:

Thu 09/11/2008

Pola yang keluar adalah seperti di atas [DAY DD/MM/YYYY]. Sekarang permasalahannya adalah bagaimana caranya untuk mengambil hanya tanggalnya saja tanpa nama hari. Lupakan saja ide anda tentang menggunakan %DAY%, %YEAR%, %MONTH%, atau system.getDate() karena hal-hal tersebut tidak dapat dilakukan pada sistem Windows, walaupun sebelumnya saya juga sempat berpikir ke arah itu. Command-command seperti itu tidak berlaku pada command prompt. Yang perlu anda lakukan adalah mendapatkan substring dari variable %date%. Bagaimana caranya? Cara yang paling mudah adalah dengan menambahkan “:~” pada nama variabel. Sebagai contoh:

0 1 2 3 4 5 6 7 8 9 10 11 12 13
T h u 0 9 / 1 1 / 2 0 0 8

echo %date:~4%

09/11/2008

It’s very simple to apply. Tambahan “:~” sama saja dengan command substring pada UNIX (bash), angka pertama (4 dalam contoh) menunjukkan posisi character awal yang akan dicetak, lalu angka yang kedua menunjukkan panjang substring. Sebagai contoh:

0 1 2 3 4 5 6 7 8 9 10 11 12 13
T h u 0 9 / 1 1 / 2 0 0 8

echo %date:~4,2%

09