6

我一直在使用 Destop.open() 在 Windows 机器(包括 Vista 和 XP)上启动 .pdf 查看器,它们中的大多数都可以正常工作。但是,在一台 XP 机器上,调用不起作用,只是返回而不抛出任何异常,并且查看器不会启动。据我所知,在那台机器上,文件关联已正确设置:双击 .pdf 可以正常工作,命令提示符下的“start xxx.pdf”命令也是如此。我认为这一定是 Windows 配置问题,但无法解决。

有没有其他人看到这个问题?

4

3 回答 3

3

这是 XP SP2 早期版本的一个已知问题,ShellExecute 函数停止接受 URI;更新 XP 机器补丁。

要查看异常,请确保 Java 控制台已打开:

Control Panel->Java Control Panel->Advanced->Java Console.
于 2008-09-17T15:31:28.743 回答
1

我在任何地方都找不到答案,但是我有两台运行 Windows 7 64 位的机器,它们在 Desktop.getDesktop().open(file) 上失败,无法打开文件或访问在 java 6 和 java 7 上被拒绝错误。

Windows 资源管理器能够根据带有扩展名的文件名打开应用程序:

Runtime rt = Runtime.getRuntime();
rt.exec(new String[]{"explorer", "C:\\myfile.pdf"});
rt.exec(new String[]{"explorer", "C:\\myfile.wmv"});
于 2012-04-01T04:56:58.847 回答
0

我的一位客户仍然有这个问题,我会检查什么版本的 Windows(据我记得他使用的是 Windows 7、64 位)。与 pdf 的文件关联是好的(检查)。而且他使用最新的java版本(检查了java的更新),所以就我而言仍然是一个实际问题.....

但是我遇到了这个错误报告: sun bug report 6764271

有人说这可能与某些 adobe 版本的注册有关(在 windows 注册表中使用 READ 而不是 OPEN)。

仍然很遗憾,像这样的错误在 prio 上很低,并且仍然是一个开放的错误(2008 年报告)。

我会尽快与我的客户核实,并在解决问题后立即在此处更新我的答案。

于 2012-03-13T22:24:15.683 回答