Java Runtime.Exec() Guide

By Angsuman Chakraborty, Gaea News Network
Thursday, July 19, 2007

JDK6Everything 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.

Discussion

pavan

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:
z:B myapp.jar sucht dein richtiges System wie Windows XP oder Linux Ubuntu 8.04 LTS oder Macintoch OS X Leopard.
Wenn myapp.jar dein richtiges System erkannt hat, dann fährt myapp.jar zur Installation für richtigem System fort.

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={
“/bin/sh”,”mysql test”,

};
p3=Runtime.getRuntime().exec(cmds_slave1);

BufferedReader pr = new BufferedReader(new InputStreamReader(p3.getInputStream()));
System.out.println(”after buFFer stmt”);
String x1;
while ((x1 = pr.readLine()) != null)
{
System.out.println(x1 + ” from mysqllll…”);
}
}catch(Exception e)
{
e.printStackTrace();
}
p3.waitFor();

But i am not getting any output.
Please let me know how to proceed more.

Thanks In Advance.
Prakash

YOUR VIEW POINT
NAME : (REQUIRED)
MAIL : (REQUIRED)
will not be displayed
WEBSITE : (OPTIONAL)
YOUR
COMMENT :