如何使用Desktop.getDesktop()方法在新选项卡中打开所有类型的文件?

时间:2015-02-19 11:38:33

标签: java

我正在研究java项目。我正在研究从我的系统打开本地文件(所有类型)到新选项卡的问题。  以下是我申请在浏览器中打开文件的代码: -

String myLocalPath=spath; //spath is path of my local file
            try {
                Desktop.getDesktop().browse(new URI(spath));
            } catch (URISyntaxException e) {
                e.printStackTrace();
            }

我遇到的问题是所有类型的文件都没有在新标签中打开。即。 html文件在我尝试打开它的当前浏览器的新选项卡中打开,

txt文件在IE浏览器中打开

Xml文件在记事本等中打开。

我想在同一浏览器的新标签页中打开所有类型的文件,无论文件是pdf,txt,xml,png还是其他任何文件。

如果有人能帮助我找到解决方案,我将感激不尽。

1 个答案:

答案 0 :(得分:1)

这是因为browse方法将open函数委托给默认的SO关联文件类型。

来自browse(URI uri)文档类:

  

启动默认浏览器以显示{@code URI}。   如果默认浏览器无法处理指定的   {@code URI},注册处理的应用程序   调用指定类型的{@code URIs}。应用程序   根据{@code URI}的协议和路径确定   由{@code URI}类定义。

根据Desktop类,这是它处理的内容:

  

{@code Desktop}类允许Java应用程序启动   在本机桌面上注册的相关应用程序   一个{@link java.net.URI}或一个文件。

      
  • 启动用户默认浏览器以显示指定的内容       URI;
  •   
  • 使用可选项启动用户默认邮件客户端       {@code mailto} URI;
  •   
  • 启动已注册的应用程序以打开,编辑或打印       指定文件。

请参阅此处的完整规范:Class Desktop