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 .
You have to put your parameters in a String array:
String a = quote(exeFullPath);
String b = paramB;
String[] cmd = new String[]{a,b};
Process myExec = Runtime.getRuntime().exec(cmd, null, parentFolder);
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();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With