devxlogo

System calls

System calls

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().

devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist