Executing External JARs in a Java GUI
Question:
In a Java GUI program, you want to enable buttons that, when pressed, execute specific JAR files (A.jar and B.jar) and display the execution progress within the GUI. How can you achieve this?
Answer:
To execute external JAR files in a separate process from a Java GUI application, follow these steps:
<code class="java">// Import necessary libraries import java.io.InputStream; import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.IOException; import java.lang.Process; import java.lang.Runtime; // Method to execute a JAR file public void executeJar(String jarPath) { try { // Execute the JAR in a separate process Process proc = Runtime.getRuntime().exec("java -jar " + jarPath); // Get the process input and error streams InputStream in = proc.getInputStream(); InputStream err = proc.getErrorStream(); // Use buffered readers to read the output efficiently BufferedReader inReader = new BufferedReader(new InputStreamReader(in)); BufferedReader errReader = new BufferedReader(new InputStreamReader(err)); // Display the output in the GUI while (inReader.ready()) { String line = inReader.readLine(); // Display the line in the GUI using appropriate method } while (errReader.ready()) { String line = errReader.readLine(); // Display the line in the GUI using appropriate method } // Close the streams inReader.close(); errReader.close(); } catch (IOException e) { // Handle the IO exception and display an error message in the GUI } }</code>
Call the executeJar() method when your buttons are clicked, passing the respective JAR file paths. This will execute the JAR files and display their output in your GUI.
The above is the detailed content of How to Execute External JAR Files from a Java GUI and Display Progress?. For more information, please follow other related articles on the PHP Chinese website!