我正在研究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还是其他任何文件。
如果有人能帮助我找到解决方案,我将感激不尽。
答案 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}或一个文件。
请参阅此处的完整规范:Class Desktop