IllegalArgumentException:可执行文件名已嵌入引号,拆分参数

时间:2013-06-03 05:25:12

标签: java exception illegalargumentexception

我收到了一个错误:

IllegalArgumentException : Executable name has embedded quote, 
split the arguments 

运行

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

我正在使用Windows7和Java7机器。

相同的代码行适用于其他环境。

建议我。

2 个答案:

答案 0 :(得分:13)

这是因为Java 7 update 21 / Java 6 update 45发生了变化。

您的问题的解决方案是重构代码以使用java.lang.ProcessBuilder代替。例如:

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

答案 1 :(得分:0)

您必须将参数放在String数组中:

    String a = quote(exeFullPath);        
    String b = paramB;
    String[] cmd = new String[]{a,b};
    Process myExec = Runtime.getRuntime().exec(cmd, null, parentFolder);