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.
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);