特定のファイルのシステム優先エディターを開く方法を見つけようとしています。
たとえば、Java で書かれたファイル マネージャーがあるとします。ユーザーはフォルダに移動し、ファイルのリストを表示します。そして、たとえば、ファイルがありますIcon.jpg
。ユーザーがファイル名をダブルクリックすると、ファイルがシステムの優先エディター (つまり Gimp) で開きます。主な問題は - どうやってそれを行うのですか?
できますRuntime.getRuntime().exec("something file")
が、この方法で、ユーザー環境でどのプログラムが優先されるかを知る必要があります。しかし、どのように?
もできますDesktop.getDesktop().edit(File file)
が、この方法ではプロセスを追跡できず、この子プロセスが閉じられていることを知ることができません。その他の問題 - Linux では機能しません (少なくとも Ubuntu 8.10 では)。もありますがDesktop.getDesktop().open(File file)
、そのファイル タイプのシステム ビューアーではなく、強制的にファイル ビューアーを開きます。
私は一週間中解決策を探していますが、適切で一般的な解決策はありませんでした。この質問に対する他のアプローチを知っていますか? 私のプロジェクトでは、Windows + Linux + Mac で動作すれば十分です。
回答とアドバイスありがとうございます。
2009-02-08 23:04 に編集
その他の提案: Mac の「ファイルを開く」のように、Windows と Linux で「アプリケーション選択」ウィンドウを強制できますか? たとえば、ファイルを開こうとすると、システムが優先するアプリケーションのリストからアプリケーションを選択するように求められますか? (Windows エクスプローラーの "Open with..." のようなもの)。あなたは知っていますか?