我一直在使用以下代码在我的 Windows 机器上使用 Java 打开 Office 文档、PDF 等,它工作正常,除了文件名将其嵌入多个连续空格(如“文件 [SPACE] [空间]Test.doc"。
我怎样才能使这项工作?我不反对将整段代码封装起来……但我不想用调用 JNI 的第三方库来替换它。
public static void openDocument(String path) throws IOException {
// Make forward slashes backslashes (for windows)
// Double quote any path segments with spaces in them
path = path.replace("/", "\\").replaceAll(
"\\\\([^\\\\\\\\\"]* [^\\\\\\\\\"]*)", "\\\\\\\"$1\"");
String command = "C:\\Windows\\System32\\cmd.exe /c start " + path + "";
Runtime.getRuntime().exec(command);
}
编辑:当我用错误的文件运行它时,窗口抱怨找不到文件。但是......当我直接从命令行运行命令行时,它运行得很好。