The moose likes I/O and Streams and the fly likes running external commands in java Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » I/O and Streams
Bookmark "running external commands in java" Watch "running external commands in java" New topic

running external commands in java

Neel Chow
Ranch Hand

Joined: Jan 10, 2005
Posts: 55
I want to run external commnad from my program.
I have a utility which I use to find differences between two files.
Its a console application and can be run from command line by

>diff file1 file2
I want to call this from a java program. How can I do this.
Stan James
(instanceof Sidekick)
Ranch Hand

Joined: Jan 29, 2003
Posts: 8791
How interesting you put this in the streams forum because streams are the SECOND part of the answer.

The first part is Runtime.getRuntime().exec( command ). This will run an external command. It's likely to tie you to one OS and requirements of external programs, but many people find they can live with those restrictions.

exec returns a Process object, which has some streams. You need to hook up and read the stdout and errout streams. We often make separate threads for the two readers. Search this forum or the threads forum for "streamgobbler" to find some neat examples posted in the past.

I don't know if all that made sense or left you scratching your head. See how far you can get with the JavaDoc and some code. Then show us the parts you understand the the parts you don't and we'll try to keep you moving forward.

A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
Neel Chow
Ranch Hand

Joined: Jan 10, 2005
Posts: 55
I tried what you said.
Process p1 = Runtime.getRuntime().exec("dir");
It did not work. Then I did some research.
Process p1 = Runtime.getRuntime().exec("cmd /c dir");
It worked this time.
Could you tell me what exactly this additional cmd /c doing??
I was succesful runnning a batch file also using this
I will go thorugh the javadoc thoroughly as you said.
Joe Ess

Joined: Oct 29, 2001
Posts: 9189

[ May 10, 2005: Message edited by: Joe Ess ]

[How To Ask Questions On JavaRanch]
Neel Chow
Ranch Hand

Joined: Jan 10, 2005
Posts: 55
Thanks..we use windows day in and day out...and still how little we know about it...
I agree. Here's the link:
subject: running external commands in java
It's not a secret anymore!