Runtime.getRuntime().exec(...),参数带有空格的解决方法

      今天在做用java自带的包来调用bat文件,当文件路径不带空格是执行正常,如下所示的情况是正常的:

String command = "D:\\l\\phonemodel.bat";//exe,bat文件名OR DOS命令
Process proc = Runtime.getRuntime().exec(command);
       这样执行可以给正常调用程序,不过在正式的环境中,路径带有空格,直接这样写的话,程序就会报出异常了,仔细解读了下jdk 1.6的相关类中方法的处理,发现它是在带有空格的地方都加上了双引号,猜想问题可能出现在这里,所以程序修改如下,

String file = "E:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\PhoneModel\\formalfiles\\20101218090959\\phonemodel.bat";
String command = "cmd /c start "+file.replaceAll(" ", "\" \"");
Process proc = Runtime.getRuntime().exec(command);


发现程序可以正常执行了,呵呵在这里记录一下,方便自己以后查找,也希望其他同行遇到同样的问题时尽早找到解决方法。
上一篇:org.apache.commons.net.ftp.FTPClient 下载文件提示Software caused connection abort: recv failed


下一篇:SpringBoot整合Redis、ApacheSolr和SpringSession