Вы всегда можете получить имя системы, над которой вы работаете, Java позволяет вам выполнять «родное» выполнение и записывать результаты этого (командная строка, так что для версий Unix, Runtime.exec («uname -a») ;) затем проанализируйте результаты в выходном потоке.
Сказав это, существует множество различных реализаций слоев графического интерфейса поверх ядра Unix, и существует , а не стандартный способ получения сопоставлений между типами файлов и изображениями значков. Вы можете принять решение, специфичное для оконного менеджера, но вам нужно будет изменить свой алгоритм в зависимости от того, какой wm используется.