我使用 java 调用下面的命令
这是java初始化
String fileName="C:\\temp\\A a.txt";
String sCmd = "cmd /c start \"\" \"" + fileName + "\"";
这是我打印 sCmd 时得到的结果
cmd /c start '" 'C:\temp\A a.txt'
这就是我运行命令的方式
Runtime.getRuntime().exec(sCmd);
文件名包含多个空格,当我从 Java 运行此命令时,它会抛出错误,因为它无法识别多个空格。当没有空格或有一个空格时它可以工作吗?如何通过 windows 命令处理具有多个空格的文件
示例 Java 程序
import java.io.File;
import java.io.IOException;
public class A
{
public static void main(String[] args)
{
String fileName = "C:\\temp\\a dfdfd f.txt";
File file = new File(fileName);
String sCmd = "cmd /c start \"\" \"" + file.getAbsolutePath() + "\"";
System.out.println("exec cmd=<" + sCmd + ">");
try
{
Runtime.getRuntime().exec(sCmd);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
当我从 Windows 端运行 java 代码时,这会给我错误。
这是java输出
exec cmd=<cmd /c start "" "C:\temp\a dfdfd f.txt">
我正在 Windows XP 中运行,这不会打开任何文件,留下一个带空格的文件。
解决方案:
import java.io.File;
import java.io.IOException;
public class A
{
public static void main(String[] args)
{
// String fileName = "C:\\temp\\a.txt";
String fileName = "C:\\temp\\a dfdfd f.txt";
File file = new File(fileName);
String sCmd = "cmd /c start \"\" \"" + file.getAbsolutePath() + "\"";
System.out.println("exec cmd=<" + sCmd + ">");
try
{
Runtime.getRuntime().exec(sCmd.split(" "));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}