Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse:如何提示用户选择要打开文件的应用程序?_Java_Eclipse_Eclipse Plugin - Fatal编程技术网

Java 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.

我想从Eclipse打开任意文件。目前我是这样做的:

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文档。只要文件类型与操作系统中的应用程序相关联,这种方法就有效。如果文件类型在操作系统中还没有默认应用程序,我的方法就会失败,我想询问用户我应该使用哪个应用程序。但我不知道我怎么能做到。