Java contains the functionality of initiating an external process – an executable file or an existing application on the system, such as Google Chrome or the Media Player- by simple Java code. One way is to use following two classes for the purpose:
- Process class
- Runtime class
The Process class present in the java.lang package contains many useful methods such as killing a subprocess, making a thread wait for some time, returning the I/O stream of the subprocess etc. Subsequently, the Runtime class provides a portal to interact with the Java runtime environment. It contains methods to execute a process, give the number of available processors, display the free memory in the JVM, among others.
Runtime.getRuntime() simply returns the Runtime object associated with the current Java application. The executable path is specified in the process exec(String path) method. We also have an IOException try-catch block to handle the case where the file to be executed is not found. On running the code, an instance of Google Chrome opens up on the computer.
Another way to create an external process is using ProcessBuilder which has been discussed in below post.ProcessBuilder in Java to create a basic online Judge
This article is contributed by Anannya Uberoi. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- Java.lang.Runtime class in Java
- Dynamic Method Dispatch or Runtime Polymorphism in Java
- Calling a method using null in Java
- Input/Output from external file in C/C++, Java and Python for Competitive Programming
- Input/Output from external file in C/C++, Java and Python for Competitive Programming | Set 2
- External Sorting
- Compiler Design | Runtime Environments
- Internal and External Commands in Linux
- Virtual Functions and Runtime Polymorphism in C++ | Set 1 (Introduction)
- Java.lang.Process class in Java
- Resetting a root password in Linux without external media
- Find whether it is possible to make array elements same using one external number
- How to execute zombie and orphan process in a single program?
- Process API Updates in Java
- Operating System | Process Table and Process Control Block (PCB)