java执行cmd命令带空格失败

图片说明
java端执行cmd命令导入sql数据到mysql数据库,sql数据路径不带空格导入成功,但是带空格导入失败,参考网上的在路径两边加双引号不起作用,但是mysql的bin路径带双引号起作用。

你把脚本写在一个.bat文件里,然后再java中调用这个文件

这是因为如果不加双引号的话cmd会把空格作为分隔符把文本分析为两个参数
这样写试试:"\"mysqlPath\""

mysqlPath = \'路径\'

cmd命令中 myqlPath中的空格,会解析成多个参数,所以你也可以把路径中的空格去掉,换一个没空格的路径

Java代码
Runtime.getRuntime().exec("cmd.exe /c D:\Program Files\test\test.exe");
因为空格,执行失败

需要在空格的前后加上双引号,而不是在整个路径的前后加双引号,如下:
Runtime.getRuntime().exec("cmd.exe /c D:\Program\" \"Files\test\test.exe");
如此修改,执行成功