У меня есть одна большая группа пользователей, которые не могут запустить локально созданный файл (PDF, Word и т. Д.) Из подписанного апплета. Двойной щелчок по файлу в проводнике Windows запускает его, так что ассоциация файла с запускающим приложением известна. Техническая поддержка удаленно входит в систему на машине с включенным UAC, не видит проблем с загрузкой апплета и может без проблем запустить локальный файл. Это заставляет меня думать, что у большой группы есть общие местные условия. Пользователи используют Java 1.6u31 в Windows XP (или 7, не уверен). Ошибка не отображается, и в консоли java ничего не отображается (все понаслышке, так как я не вижу проблемы). Есть предложения по поводу того, какие локальные настройки ПК могут вызывать такое поведение? Судя по коду, проблема в том, что Desktop поддерживается, а Desktop.Action.OPEN - нет. Есть предложения, почему? Спасибо.
Я использую для запуска файла следующее:
/*
//old way that would work for Windows prior to Java 1.6
//cmd = System.getenv("windir") +"\\system32\\"+"rundll32 SHELL32.DLL,ShellExec_RunDLL " + cmd;
//cmd = "open "+cmd; // Mac for PDF only?
//try{
// Runtime.getRuntime().exec(cmd);
//} catch (Exception e) {
// //handle error
//}
*/
Desktop desktop = null;
if (Desktop.isDesktopSupported()) {
desktop = Desktop.getDesktop();
if (desktop.isSupported(Desktop.Action.OPEN)) {
try {
desktop.open(new File(file));
return;
} catch (IOException e) {
//Error launching the file
e.printStackTrace();
JOptionPane.showMessageDialog(theFrame,
"Unable to launch the file.",
"Document Error", JOptionPane.ERROR_MESSAGE);
return;
}
}
} else {
//This OS cannot launch the file
JOptionPane.showMessageDialog(theFrame,
"This operating system is unable" +
"\nto launch external files" +
"\nfrom within this application.",
"Document Error", JOptionPane.ERROR_MESSAGE);
return;
}