これは、ショートカットファイル(.lnk)を実行するために通常使用するコードです。
//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]を読み込めないというエラーが表示されることです。
たとえば、値が[Desktop \AB.lnk]のcurrentDirがあるとします。
解析すると[Desktop\"A B.ink"]になり、これはコマンドプロンプトで完全に機能します。
問題は、上記のコードを使用すると、このエラーが発生することです。
Windowsが「B.ink」を見つけることができません。名前を正しく入力したことを確認して、再試行してください