Я пытаюсь выяснить, как открыть системный предпочтительный редактор для данного файла.
Скажем, у нас есть файловый менеджер, написанный на 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
Другое предложение: могу ли я заставить окно выбора приложения в Windows и Linux, как в Mac с "открытым файлом"? Например, тогда вы пытаетесь открыть файл, вас попросят выбрать приложение из списка предпочтительных систем? (что-то вроде "Открыть с..." в проводнике Windows). Знаете ли вы?