This week's book giveaways are in the Java EE and JavaScript forums.
We're giving away four copies each of The Java EE 7 Tutorial Volume 1 or Volume 2(winners choice) and jQuery UI in Action and have the authors on-line!
See this thread and this one for details.
The moose likes Java in General and the fly likes Why is not the process terminating after executing the command Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Why is not the process terminating after executing the command" Watch "Why is not the process terminating after executing the command" New topic
Author

Why is not the process terminating after executing the command

Avi Nash
Ranch Hand

Joined: Jul 17, 2003
Posts: 69
Hi
The process is not getting terminated after executing a command.
Should not the process get terminated automatically once the command is executed? Or should we terminate it using a separate command.
The code:
try {
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(commandToExecute);
process.waitFor();
System.out.println
("Exitvalue="+process.exitValue ());
is just waiting and not coming out.

rgds
Avinash
Ernest Friedman-Hill
author and iconoclast
Marshal

Joined: Jul 08, 2003
Posts: 24183
    
  34

If the process sent any output to stdout or stderr, it may not terminate until you've read that data, even if you just discard it. Use the getErrorStream() and getInputStream() methods to get the streams.


[Jess in Action][AskingGoodQuestions]
Avi Nash
Ranch Hand

Joined: Jul 17, 2003
Posts: 69
Hi Ernest
Thanks a lot.
After reading the input stream, the process is getting terminated.
But I am not clear as to why should we read this data for the process to terminate.
thx again
rgds
Avinash
 
Don't get me started about those stupid light bulbs.
 
subject: Why is not the process terminating after executing the command