Java Eclipse:如何提示用户选择要打开文件的应用程序?
我想从Eclipse打开任意文件。目前我是这样做的:Java Eclipse:如何提示用户选择要打开文件的应用程序?,java,eclipse,eclipse-plugin,Java,Eclipse,Eclipse Plugin,我想从Eclipse打开任意文件。目前我是这样做的: if (((File) selectedElement).isFile()) { try { Desktop.getDesktop().open((File) selectedElement); } catch (IOException e) { //TODO prompt for the appropriate application to open this file.
if (((File) selectedElement).isFile()) {
try {
Desktop.getDesktop().open((File) selectedElement);
} catch (IOException e) {
//TODO prompt for the appropriate application to open this file.
e.printStackTrace();
}
}
不幸的是,只有当操作系统有一个与文件类型关联的默认应用程序时,这才有效。这就是为什么,如果没有定义任何默认应用程序,我想问用户我应该使用哪个应用程序。但我不知道如何1)找到可用应用程序的列表,2)打开该应用程序的文件。关于如何以独立于平台的方式实现它的任何提示?我能想到的任何解决方案都取决于操作系统。例如,如果应用程序在windows中运行,则可以向用户提供Program files文件夹中所有*.exe文件的列表。或者linux操作系统的/bin、/sbin、/usr/bin、/usr/share/bin中的所有应用程序。已经有另一个线程标记为已解决此问题,请检查:您的意思是“来自Eclipse”,例如,这是一个RCP应用程序或插件;还是说Eclipse是您的IDE?因为首先使用Desktop.open()不是Eclipse的方法,我正在编写一个插件。这个插件可以浏览操作系统的所有文件。现在,如果文件不是文本文件或java文件,我想用操作系统中的默认应用程序打开这些文件。例如,带有MS Word的docx文档。只要文件类型与操作系统中的应用程序相关联,这种方法就有效。如果文件类型在操作系统中还没有默认应用程序,我的方法就会失败,我想询问用户我应该使用哪个应用程序。但我不知道我怎么能做到。