2012-04-06 1 views
11

Eclipseから任意のファイルを開きたい。現在、私はそのようにしています: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(); 
    } 
} 

残念ながら、これは、OSにファイルタイプに関連付けられているデフォルトのアプリケーションがある場合にのみ動作します。そのため、デフォルトアプリケーションが定義されていない場合は、使用するアプリケーションをユーザーに尋ねる必要があります。しかし、私はどのように1)利用可能なアプリケーションのリストを見つけ、2)そのアプリケーションでファイルを開くのか分かりません。プラットフォームに依存しない方法でこれを実装する方法についてのヒントはありますか?

+0

をあなたは「エクリプスから」意味するか、のように、これはRCPアプリケーションやプラグインです。それとも、EclipseがあなたのIDEだということですか? Desktop.open()を使用するのはEclipseの最初の方法ではないからです。 –

+0

私はプラグインを書いています。このプラグインは、OSのすべてのファイルを参照する可能性があります。今、ファイルがテキストファイルやJavaファイルでない場合は、OSのデフォルトアプリケーションでファイルを開きたいと思います。たとえば、MS Wordのdocxドキュメントです。これは、ファイルタイプがOSのアプリケーションに関連付けられている限り機能します。ファイルタイプがまだOSのデフォルトアプリケーションでない場合、私のアプローチは失敗し、どのアプリケーションを使うべきかをユーザに尋ねたい。しかし、私はそれをどうやってできるのか分かりません。 –

答えて

4

私が考えることができる解決方法はOSによって異なります。たとえば、アプリケーションがWindowsで実行されている場合は、Program Filesフォルダー内のすべての* .exeファイルのリストをユーザーに提供できます。または、Linux OSの場合は/ bin、/ sbin、/ usr/bin、/ usr/share/binにあるすべてのアプリケーション。このために解決して、別のスレッドがマークされ、すでにあります

関連する問題