Run a jar File from java program
I am trying to execute jar files from another Java program. I am using the following code :
try {
Runtime runtime = Runtime.getRuntime();
runtime.exec("path upto jar");
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Exception occured" + ex);
}
But its not working. I tried google and it gave me the examples using ProcessBuilder, but that is not working either.
Solution 1:
Using ProcessBuilder(java.lang.ProcessBuilder) will solve your problem. Syntax is as follows -
ProcessBuilder pb = new ProcessBuilder("java", "-jar", "absolute path upto jar");
Process p = pb.start();
You can redirent input/output/error to/from files as follows
File commands = new File("absolute path to inputs file");
File dirOut = new File("absolute path to outputs file");
File dirErr = new File("absolute path to error file");
dirProcess.redirectInput(commands);
dirProcess.redirectOutput(dirOut);
dirProcess.redirectError(dirErr);
Solution 2:
First suggestion/recommendation is to use ProcessBuilder instead of Runtime. Here is what you can try:
ProcessBuilder pb = new ProcessBuilder("java", "-jar", "./jarpath/yourjar.jar");
Process p = pb.start();
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String s = "";
while((s = in.readLine()) != null){
System.out.println(s);
}
int status = p.waitFor();
System.out.println("Exited with status: " + status);