Чудо, оно работает!
Не спрашивайте меня, почему, но когда я, после довольно долгого нервного исследования в интернете, был близок к тому, чтобы сдатьсяи использовать временный пакетный файл в качестве обходного пути, я забыл добавить параметр / select, к команде, и, кто бы мог подумать, в моей системе Win 7 32Bit работает следующее.
String param = "\"C:\\Users\\ME\\AppData\\Local\\Microsoft\\Windows\\Temporary Internet Files\\\"";
try {
String[]commands = new String[]{"explorer.exe", param};
Process child = Runtime.getRuntime().exec(commands);
} catch (IOException e1) {
System.out.println("...");
}
Общее решение:
Решение базы данных об ошибках, упомянутое prunge в его посте (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6511002) работало нормально для меня.
Причина:
Очевидно, что проблема заключается в комментировании некоторых символов, выполняемых java, которое он выполняет перед фактическим выполнением командной строки. Вы должны сами комментировать, маркируя свою командную строку, чтобы предотвратить ошибочную javaодин, чтобы вступить в действие и все испортить.
Как исправить:
Итак, в моем случае мне пришлось сделать следующее (токенизация моей командной строки, такчто внутри не осталось пробеловстрока ):
String param[] = {
"explorer.exe",
"/select,C:\\Users\\ME\\AppData\\Local\\Microsoft\\Windows\\Temporary",
"Internet",
"Files\\"};
try {
Process child = Runtime.getRuntime().exec(param);
} catch (IOException e1) {
System.out.println("...");
}
Как вы можете видеть, я в основном начинал новую строку везде, где возникал пробел, поэтому «Временные файлы Интернета» стали «Временные», «Интернет», «Файлы».