11

我收到一个错误:

IllegalArgumentException : Executable name has embedded quote, 
split the arguments 

运行时

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

我正在使用 Windows7 和 Java7 机器。

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

给我一些建议。

4

2 回答 2

15

这是因为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();
于 2013-06-03T05:27:28.567 回答
1

你必须把你的参数放在一个字符串数组中:

    String a = quote(exeFullPath);        
    String b = paramB;
    String[] cmd = new String[]{a,b};
    Process myExec = Runtime.getRuntime().exec(cmd, null, parentFolder);
于 2020-08-21T12:45:17.370 回答