When experiencing networking problems on client machines, I’d like to be able to run a few command lines and email the results of them to myself.
I’ve found Runtime.exec will allow me to execute arbitrary commands, but Collecting the results in a String is more interesting.
I realize I could redirect output to a file, and then read from the file, but my spidey sense is telling me there’s a more elegant way of doing it.
Suggestions?
You need to capture both the std out and std err in the process. You can then write std out to a file/mail or similar.
See this article for more info, and in particular note the
StreamGobblermechanism that captures stdout/err in separate threads. This is essential to prevent blocking and is the source of numerous errors if you don’t do it properly!