IllegalArgumentException : Executable name has embedded quote, split the arguments

Gaurav Singh picture Gaurav Singh · Jun 3, 2013 · Viewed 9.8k times · Source

I'm getting an error :

IllegalArgumentException : Executable name has embedded quote, 
split the arguments 

While running the

Runtime.getRuntime().exec(cmd, envTokens, file1);

I'm using Windows7 and Java7 machine .

Same line of code is working fine for other environments .

Suggest me some way .

Answer

Aleksander Blomskøld picture Aleksander Blomskøld · Jun 3, 2013

This happens because of a change in Java 7 update 21/Java 6 update 45.

The solution to your problem is to refactor your code to use java.lang.ProcessBuilder instead. For instance:

ProcessBuilder pb = new ProcessBuilder("command", "argument1", "argument2");
Map<String, String> env = pb.environment();
env.put("var1", "value1");
Process p = pb.start();