Начиная с 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);
}