Ошибка открытия файлов с рабочего стола в Java (Windows 7) - PullRequest
1 голос
/ 02 июня 2011

Я создал программу, которая генерирует электронную таблицу Excel (.xls), а затем спрашивает, хочет ли пользователь открыть ее немедленно (если это так, он использует для этого команду java.awt.Desktops open ()). Это нормально работает в Windows XP, но когда я попробовал с Windows 7, это не сработало. Ниже приведен пример моего кода ...

Desktop myDesk = null;

//if printed to file successfully and java.awt.Desktop is supported
if (printed && Desktop.isDesktopSupported())
{   
    myDesk = Desktop.getDesktop();

    if (myDesk.isSupported(Desktop.Action.OPEN))
    {
         //ask to open file
        int openFile = JOptionPane.showConfirmDialog(null, "File successfully 
                          created.\nWould you like the excel file to open?", 
                          "open file?", JOptionPane.YES_NO_OPTION);

        //try to open file
        if (openFile == JOptionPane.YES_OPTION)
        {
            try { myDesk.open(myFile); }
            catch (IOException e){ JOptionPane.showMessageDialog(null, "Problem 
                                    opening file automatically, please open it
                                    yourself.", "Error", JOptionPane.ERROR_MESSAGE); }
        }
    }
}

В windows 7 это успешно печатает в файл, показывает диалог openFile, затем показывает диалог ошибки. Этого не должно быть, поскольку для перехода к диалогу openFile должны поддерживаться и Desktop, и Desktop.open (). Возможно, это может быть связано с попыткой открыть файл «.xls» вместо «.xlsx», но для любого типа файла все равно должно быть установлено значение excel ...

Итак, есть идеи о том, почему это происходит? И либо как это исправить, или если есть альтернативный способ открыть файл, который работает лучше универсально?

1 Ответ

1 голос
/ 02 июня 2011

Это звучит как стандартная проблема UAC в Vista / 7.Возможно, вы захотите попробовать включить Контроль учетных записей (UAC) в Панели управления-> Учетные записи пользователей-> Включить или отключить контроль учетных записей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...