Home > Java > javaTutorial > body text

How to Execute External Programs in Java and Capture Their Output?

Barbara Streisand
Release: 2024-10-30 09:29:02
Original
291 people have browsed it

How to Execute External Programs in Java and Capture Their Output?

How to Execute External Programs in Java

When dealing with complex tasks or interfacing with external systems, Java developers often need to execute external programs from their code. While straightforward in concept, this task can introduce various challenges, such as process management, parameter passing, and error handling.

One common approach for executing external programs in Java is to utilize the Runtime.getRuntime().exec() method. This method takes an array of strings as its argument, where the first element represents the executable path and the subsequent elements act as command-line parameters.

While the code provided in the question uses this method, it fails to capture the output or interact with the external program. To rectify this, we can employ a process-based approach instead:

<code class="java">Process process = new ProcessBuilder("C:\PathToExe\MyExe.exe", "param1", "param2").start();</code>
Copy after login

This code creates a ProcessBuilder object, specifying the executable and its parameters. Subsequently, it initiates the external program by invoking the start() method, returning a Process object that represents the child process.

To interact with the child process and access its output, we can utilize input and output streams:

<code class="java">InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);

String line;
System.out.printf("Output of running %s is:", Arrays.toString(args));

while ((line = br.readLine()) != null) {
  System.out.println(line);
}</code>
Copy after login

This code opens an input stream from the child process, creates a reader, and then iterates through the output line by line, displaying it on the console.

By using a process-based approach, we can effectively execute external programs, manage their input and output, and handle errors in a comprehensive manner. The code provided serves as a starting point for developers seeking to interface with external systems from Java code.

The above is the detailed content of How to Execute External Programs in Java and Capture Their Output?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!