Java Runtime.Exec() Guide
By Angsuman Chakraborty, Gaea News NetworkThursday, July 19, 2007
Everything you ever wanted to know and should know about Java Runtime.exec().
This old but still golden article is an excellent guide to using Runtime.exec(). The key points he discusses are:
1. You need to drain the input stream to prevent because failure to promptly write the input stream or read the output stream of the subprocess may cause the subprocess to block, and even deadlock.
2. Use waitFor() instead of exitValue() when you want to wait for the process to finish.
3. Runtime.exec() wouldn’t directly execute shell commands like dir / ls, copy / cp etc. You need to invoke the shell cmd.exe / bash / sh and pass the shell commands. For example in windows your command array to execute dir would be as follows:
cmd[0] = “cmd.exe” ;
cmd[1] = “/C” ;
cmd[2] = “dir”;
Personally I have successfully used Runtime.exec() on several occasions. Any C programmer should quickly find equivalence with fork and system calls in C language. As always RTFM.
SnakeMedia |
December 23, 2008: 6:36 am
Ist die Java App als “cross-plattform” abhängiges Ausführen? Oder verstehe ich richtig? Ich brauche Tipp für automatische Überprüfung: Ein Tipp: wenn das Programnm auf dem Computer schon installiert, dann soll myapp.jar nicht wiederinstallieren nur hinterlassen? Wie geht es richtig? Danke für Tipp? Wegen Tipp für Adobe Air auf dem DVD- oder CD-ROM brauche ich hier, weil ich beseres erfunden habe. wenn der Benutzer z.B. Macintoch OS X Leopard hat, dann legt Benutzer ein DVD oder CD von Adobe Air Developer ( z.B. von meiner Idee )ein, da passiert es nicht. Während hat Macintoch OS X Java Runtime SE. Es gibt kein Problem. myapp.jar wird vom DVD oder CD ausgeführt und sucht richtiges System und soll automatisch installieren. Danke für meine Idee! Viele Grüße, SnakeMedia |
Prakash |
June 9, 2008: 10:23 pm
Hi all , How to execute the mysql command in linux using the runtime.exec. example : String []cmds_slave1={ }; BufferedReader pr = new BufferedReader(new InputStreamReader(p3.getInputStream())); But i am not getting any output. Thanks In Advance. |
pavan