
Tenho um aplicativo Java que instalei via install4j. O atalho na área de trabalho mostra o ícone correto do aplicativo que foi definido no arquivo .desktop; no entanto, uma vez iniciado, o ícone do aplicativo não aparece no dock. O ícone Java padrão é mostrado no lugar dele.
É assim que fica no Desktop:
Mas no Dock mostra o ícone Java:
Também não sei por que, o nome correto do aplicativo não aparece quando passo o mouse sobre o ícone no dock - em vez disso, ele nomeia o iniciador Java.
.Área de Trabalho:
#!/usr/bin/env xdg-open
[Desktop Entry]
Type=Application
Name=NMRViewJ
Exec="/home/issac/NMRViewJ/NMRViewJ"
Icon=/home/issac/NMRViewJ/.install4j/NMRViewJ.png
StartupWMClass = sun-awt-X11-XFramePeer
Categories=Application;
Responder1
Isso será corrigido no install4j 8.0 em cerca de 2 semanas (fonte: trabalho para a empresa que desenvolve o install4j).
O principal problema é que a WMClass
propriedade das janelas AWT está definida como a classe principal. Isso significa que a classe principal deve ser exclusiva para a aplicação, mas o install4j insere sua própria classe principal que até 7.0 é sempre a mesma. Como solução alternativa, você poderia alterar o estado interno do kit de ferramentas AWT de forma reflexiva:
Class<?> toolkitClass = Toolkit.getDefaultToolkit().getClass();
if (toolkitClass.getName().equals("sun.awt.X11.XToolkit")) {
Field awtAppClassName = toolkitClass.getDeclaredField("awtAppClassName");
awtAppClassName.setAccessible(true);
awtAppClassName.set(null, "<my unique application name>");
}
No install4j 8.0, uma classe principal exclusiva será gerada e o arquivo .desktop gerado incluirá uma StartupWMClass
entrada correspondente.