Имя приложения install4j в Gnome 3 - PullRequest
0 голосов
/ 01 мая 2018

Когда наше приложение установлено с помощью install4j на рабочем столе Gnome 3 в Linux, и приложение запускается: в меню «Приложение», расположенном рядом с кнопкой «Действия», в котором отображается имя активного приложения, отображается «com-install4j-runtime-launcher» -UnixLauncher».

Есть ли параметр в install4j, чтобы вместо этого правильно отображалось имя нашего приложения?

1 Ответ

0 голосов
/ 01 мая 2018

Начиная с install4j 7, для этого есть только один способ:

Определить переменную компилятора

sys.ext.windowClass.<nn>=MyAppName

, где <nn> - идентификатор средства запуска, а MyAppName не должно содержать пробелов.

Это добавит запись «StartupWMClass» в файл .desktop.

Для AWT фактический класс окна должен быть установлен на то же значение программно. Это невозможно с помощью API, но только с помощью отражения:

String wmClass = ...;
Toolkit toolkit = Toolkit.getDefaultToolkit();
Class<?> toolkitClass = toolkit.getClass();

if (Objects.equals("sun.awt.X11.XToolkit", toolkitClass.getName())) {
    //noinspection JavaReflectionMemberAccess
    Field awtAppClassName = toolkitClass.getDeclaredField("awtAppClassName");
    awtAppClassName.setAccessible(true);
    awtAppClassName.set(null, wmClass);
}
...