Как запустить стандартное (нативное) приложение для данного файла из Java? - PullRequest
6 голосов
/ 18 февраля 2009

Я отображаю список файлов; то есть xls, doc, pdf, odt и т. д. в моем приложении Java (Eclipse RCP). Когда пользователь нажимает на файл, я хочу запустить соответствующее (в соответствии с тем, что думает ОС) собственное приложение, как это происходит в Windows Explorer или Finder.

И пока я здесь: было бы неплохо также отобразить те же значки, которые Finder или Explorer используют для разных типов файлов.

Есть ли для этого плагин библиотеки или Eclipse?

Ответы [ 3 ]

14 голосов
/ 11 июня 2009

То, что вы хотите, это java.awt.Desktop :

Desktop.getDesktop().open( file );
6 голосов
/ 18 февраля 2009

Я нашел API в SWT Eclipse, который, кажется, делает свое дело: org.eclipse.swt.program.Program"предоставляет доступ к средствам для обнаружения специфических для операционной системы аспектов запуска внешних программ."

У него есть методы, чтобы найти программу с заданным расширением файла, получить значок программы и даже запустить программу.

2 голосов
/ 18 февраля 2009

Звучит так, будто вы после Java Activation Framework ("JAF"). Этот API позволяет вам определить, что это за файлы и какие действия над ними можно выполнять. Или же Компонент интеграции рабочего стола Java ("JDIC"). JDIC позволяет создавать и без сомнения запрашивать ассоциации файлов.

Оба проекта кажутся в полузабытом состоянии (вздох). Но в наши дни это нормально для Солнца. Единственное, что мне известно, это какая-то сторонняя библиотека для Windows, основанная на JNI под названием Winpack . Это делает кучу других вещей тоже.

Вы можете получить связанный значок , используя FileSystemView класс (Java 1.4 +).

...