Стоит поместить имя файла в кавычки, чтобы сделать оператор более безопасным (если файл содержит пробелы в имени или пути):

аюсь выяснить, как открыть системный редактор для данного файла.

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

Ответы на вопрос(4)

Ваш ответ на вопрос