Riddler
Riddler

Reputation: 576

How to display the output of an executed command line program?

I have a command line Java program which i unfortunately cannot modify for certain integrity reasons, I am providing a GUI for this program and i got it all covered except that i am unable to provide notifications about completion of processes to the user as the program prints data to command line using System.out.println() , I designed the UI using net beans and it resides in a separate file , so how can i do this..?

Upvotes: 0

Views: 270

Answers (1)

Tim Büthe
Tim Büthe

Reputation: 63744

Are you using Runtime.exec to execute the program? Then you can get the output stream as well like this:

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("java yourOtherProgram.jar");
InputStream stdin = proc.getInputStream();

If you're calling some method directly, you could redirect System.out like this:

PrintStream out = ...;
PrintStream err = ...;

System.setOut(out);
System.setErr(err);

ThatOtherProgram foo = new ThatOtherProgram();
foo.main(new String[0]);

EDIT

You could then use the Scanner to scan the input and do something with it.

Upvotes: 3

Related Questions