无法从java程序运行批处理文件

时间:2011-10-15 05:42:14

标签: java

我想从Java程序运行批处理文件。

这有效:

runtime.getruntime().exec("cmd /c C:\\test.bat");  //Working

它工作得很好,但是如果我在批处理文件的路径中给出空格,它就不起作用了:

runtime.getruntime().exec("cmd /c C:\\Program Files\\test.bat");  //Not Working

任何人都可以帮助我。

3 个答案:

答案 0 :(得分:4)

您需要在命令行中在带有空格的文件名周围加上引号:

runtime.getruntime().exec("cmd /c \"C:\\Program Files\\test.bat\"");

答案 1 :(得分:1)

  1. 使用ProcessBuilder与1.5+中的Process进行任何操作。 (如果使用List based constructor,它可能会解决路径问题。)
  2. (关于此事的一般建议)阅读并实施When Runtime.exec() won't的所有建议。

答案 2 :(得分:0)

您需要使用\转义空格。在每个空格之前放一个反斜杠\