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