我創建了一個生成excel電子表格(.xls)的程序,然後詢問用戶是否想立即打開它(如果是,它使用java.awt.Desktops打開()命令來這樣做)。這在Windows XP中工作正常,但是當我嘗試使用Windows 7時,它不起作用。下面是我的代碼示例...在java中打開文件時出現錯誤(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文件仍然應該被設置爲默認文件類型...
因此,有關此原因的任何想法正在發生?無論是如何解決這個問題,還是有另一種方法可以打開一個更好地普遍適用的文件?
[Javadoc](http://download.oracle.com/javase/6/docs/api/java/awt/Desktop.html#open(java.io.File)),爲這些人節省了一點時間試圖回答:「IOException - 如果指定的文件沒有關聯的應用程序或關聯的應用程序無法啓動」。 – 2011-06-02 19:33:58
@ michael-myers但是excel被設置爲關聯的應用程序(如果我雙擊該文件,它會在excel中打開而沒有問題),那麼爲什麼excel無法啓動? – scaevity 2011-06-02 19:56:00