我将使用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();
}
}
}