I am using jdk1.6 to develop an application which should list only particular processes running in a RHEL 5 server. I had used 'Runtime.getRuntime().exec("ps -ef|grep java")' to call linux process but does not work. It works if I use "ps -ef" as command.
Can anyone suggest me, how to run joined command of linux through application.
P.S. Since you are using JDK1.6 you can use ProcessBuilder rather than Runtime.exec(). Runtime.exec() uses ProcessBuilder behind the scenes but has an improved API compared to Runtime.exec(). The 'traps' article still apples to Process objects created using ProcessBuilder.
Ritesh Dwa wrote:It works if I use "ps -ef" as command.
OK, so use that. I presume you're familiar with String.matches().
However, on a general note, Java was never designed for running system commands; indeed, it runs contrary to the whole ethos of Java - portability.
Your solution, for example, will only work on a Unix/Linux system.
On the other hand, it should be a very simple matter to write a script that runs the pipeline you want and sends the output of that to a Java program.
"Leadership is nature's way of removing morons from the productive flow" - Dogbert
Articles by Winston can be found here
posted 6 years ago
Thank you all for your suggestion.
I have implemented the suggestion and now the application can handle the command smoothly.
He puts the "turd" in "saturday". Speaking of which, have you smelled this tiny ad?
create, convert, edit or print DOC and DOCX in Java