2 whipjeans whipjeans 于 2013.09.22 09:11 提问

java用命令调用bat批处理的问题

Runtime.getRuntime().exec(cmd /k start bat文件路径);
里面的路径有空格怎么办,加上双引号不可以的,有什么办法??

2个回答

yjtgod
yjtgod   2013.09.22 16:13
已采纳

试了一个取巧的方法:
再写一个bat文件,在bat文件里面再写你真正要运行的bat文件的调用。

如我现在想要执行D:\JAVAAPI\test file文件下的一个test.bat文件,但因为test file这个文件夹命名时存在空格,所以执行不成功。

在一个没有空格文件夹目录的地方写一个调用test.bat的文件,如callSomething.bat

echo start
"D:JAVAAPI\test file\test.bat" //此处要用""号,否则还是执行失败,报找不到文件错误
pause

这样在程序中就可以写:
Runtime.getRuntime().exec("cmd /k start D:\JAVAAPI\callSomething.bat");

lucumu
lucumu   2013.09.29 09:19

特意试了一下,空格应该是没有问题的。

Process exec = Runtime.getRuntime().exec("cmd.exe /k start \"C:\\Program Files\\test.bat\"");
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!