2
这是代码,我会用正常执行快捷方式文件(.LNK)如何使用空间在Java中使用的ProcessBuilder
//Get Directory
String currentDir = new File(game.getGamePath()).getCanonicalPath();
//Parse Directory to put apostrophes around shortcut name
currentDir = currentDir.substring(0, currentDir.lastIndexOf("\\") + 1) + '"' +
currentDir.substring(currentDir.lastIndexOf("\\") + 1, currentDir.length()) + '"';
//prep the launcher
ProcessBuilder processBuild = new ProcessBuilder();
processBuild.command("cmd", "/c", "start" ,"/wait", "", currentDir);
//launch
Process = processBuild.start();
try {
Process.waitFor();
} catch (InterruptedException ex) {
}
问题是,当快捷方式的文件名中有空格,我得到一个推出了快捷方式从窗户说 错误它不能加载[WordAfterSpace.ink]
例如说我有值currentDir [桌面\ A B.lnk]
解析的这将是[桌面\“A B.墨水“],这完美的命令提示符。
问题是我会得到这个错误,如果我是用上面的代码:
Windows无法找到“B.ink”,确保在正确,键入名称,然后再试一次
我试过并且我所得到的只是一个命令提示符控制台这是指向括号内的目录 –
是否可以通过调用game.getGamePath()来打开路径,而不是链接? – nick
game.getGamePath()输出一个字符串,其中包含从JFileChooser中提取的路径。 –