Executing another application from Java

user234194 picture user234194 · Aug 12, 2010 · Viewed 122.7k times · Source

I need to execute a batch file which executes another Java application. I don't care whether it executes successfully or not and I don't have to capture any errors.

Is it possible to do this with ProcessBuilder? What are the consequences if I do not capture errors?

However, my requirement is just to execute another Java application.

Answer

Jose Diaz picture Jose Diaz · Aug 12, 2010

The Runtime.getRuntime().exec() approach is quite troublesome, as you'll find out shortly.

Take a look at the Apache Commons Exec project. It abstracts you way of a lot of the common problems associated with using the Runtime.getRuntime().exec() and ProcessBuilder API.

It's as simple as:

String line = "myCommand.exe";
CommandLine commandLine = CommandLine.parse(line);
DefaultExecutor executor = new DefaultExecutor();
executor.setExitValue(1);
int exitValue = executor.execute(commandLine);