Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Не работает findProgram() в KDE(Linux)


Автор: bloodyrat 29.7.2010, 08:40
Добрый день! Помогите, пожалуйста, решить задачу получения иконки файла (точнее иконку программы, связанной с данным типом файла) в линуксе.

В идеале требуется получить программу, связанную с данным типом файла.
В винде отлично работает следующий метод:
Код

org.eclipse.swt.program.Program.findProgram(String extension);

Но в линуксе (KDE) findProgram возвращает null.
Учитывая, что даже я знаю как минимум 3 способа ассоциировать тип файла с программой в лине (родной для Qt, родной для GTK+, mime.types), то для каждого случая нужны свои костыли (как минимум для Qt и GTK+).
В документации сказано следующее про org.eclipse.swt.program:
Цитата

This package contains class Program which provides access to facilities for discovering operating system specific aspects of external program launching. 

Отсюда можно сделать предположение, что в классе Program уже должны быть нужные костыли.
Подскажите, пожалуйста, откуда данный класс пытается брать информацию и как заставить его работать.

PS: http://stackoverflow.com/questions/975919/how-to-display-system-icon-for-a-file-in-swt с использованием FileSystemView.getFileSystemView().getSystemIcon(file) тоже не работает.

PPS: То, что я что-то делаю не так было первым предположением, но во-первых на винде все работает, а во-вторых в самом Эклипсе используется тот же метод для получение иконок файлов в дереве проекта (кроме собственных иконок) и тоже работает на винде, но не на лине.

PPPS: Возможно более подходящим местом является http://forum.vingrad.ru/forum/java-general.html. Если это так, то прошу модераторов перенести топик.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)