gpt4 book ai didi

java - 在java中使用Desktop打开文件时出错(Windows 7)

转载 作者:太空宇宙 更新时间:2023-11-04 08:36:36 24 4
gpt4 key购买 nike

我创建了一个程序,它生成 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 仍应设置为任一文件类型的默认值...

那么关于为什么会发生这种情况你有什么想法吗?以及如何修复它,或者是否有另一种方法来打开一个更通用的文件?

最佳答案

这听起来像是一个标准的 Vista/7 UAC 问题。您可能需要尝试在“控制面板”->“用户帐户”->“打开或关闭用户帐户控制”中打开用户帐户控制 (UAC)。

关于java - 在java中使用Desktop打开文件时出错(Windows 7),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6219359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com