Question:
How can I make shell level calls from a java program? For example, I want to execute the “ls -al” command from java and return its values back to the user. I tried the exec() method of the Runtime class, but it returns a Process which is an abstract class and cannot be instantiated.Is there any other method of doing this?
Answer:
You want to use the Runtime.exec() method aftergetting a reference to the default Runtime usingRuntime.getRuntime(). Just because Process isan abstract class, does not mean that exec()cannot return a valid reference. What exec()does is return a subclass of Process appropriateto the platform you are running on. To read theoutput from a child process, you must fetch itsoutput stream using getOutputStream().