Стоит поместить имя файла в кавычки, чтобы сделать оператор более безопасным (если файл содержит пробелы в имени или пути):
аюсь выяснить, как открыть системный редактор для данного файла.
Скажем, у нас есть файловый менеджер, написанный на 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). Вы знаете?