Como abrir o editor preferido do sistema do usuário para um determinado arquiv

Estou tentando descobrir como abrir o editor preferido do sistema para um determinado arquiv

Dizem que temos um gerenciador de arquivos, escrito em Java. O usuário vai para a pasta e vê a lista de arquivos. E, por exemplo, existe um arquivoIcon.jpg. O usuário clica duas vezes no nome do arquivo e o arquivo é aberto no editor preferido do sistema (ou seja, Gimp). A questão principal é - como fazer isso?

Nós podemos fazerRuntime.getRuntime().exec("something file"), mas dessa maneira você deve saber qual programa é preferido no ambiente do usuário. Mas como

Nós também somos capazes de fazerDesktop.getDesktop().edit(File file), mas dessa forma não podemos rastrear o processo e não podemos saber que esse processo filho está fechado. Outro problema - a função não funciona no linux (pelo menos no Ubuntu 8.10). Há tambémDesktop.getDesktop().open(File file), mas força a abertura do visualizador de arquivos, em vez do visualizador do sistema para esse tipo de arquiv

Estou procurando uma solução a semana toda, mas não obtive nenhuma adequada e genérica. Você conhece as outras abordagens para esta pergunta? Para o meu projeto, seria suficiente se funcionasse no Windows + Linux + Mac.

brigado por suas respostas e conselho

Edit on 08-02-2009 23: 04

Outra sugestão: posso forçar a janela "seleção de aplicativo" no Windows e no Linux, como no Mac com "arquivo aberto"? Por exemplo, quando você tenta abrir um arquivo, é solicitado que você escolha o aplicativo da lista de sistemas preferidos? (algo como "Abrir com ..." no Windows Explorer). Você sabe