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



出现错误:

IllegalArgumentException : Executable name has embedded quote, 
split the arguments 

运行

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

我用的是Windows7和Java7机器

同一行代码在其他环境下也能正常工作。

给我个建议

这是因为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();

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

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

相关内容

  • 没有找到相关文章

最新更新