Java 图标代替应用程序图标显示;用 install4j 安装

iac*_*786 2 icons java launcher

我有一个通过 install4j 安装的 Java 应用程序。桌面快捷方式显示了在 .desktop 文件中设置的正确应用程序图标;但是,一旦启动,应用程序图标就不会显示在 Dock 上。将显示默认 Java 图标来代替它。

这是它在桌面上的外观:

在桌面上

但是在 Dock 上它显示了 Java 图标:

在码头上

我也不知道为什么,当我将鼠标悬停在 Dock 上的图标上时,没有出现正确的应用程序名称 - 而是将它命名为 java 启动器。

。桌面:

#!/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;
Run Code Online (Sandbox Code Playgroud)

Ing*_*gel 5

这将在大约 2 周内在 install4j 8.0 中修复(来源:我为开发 install4j 的公司工作)。

主要问题是WMClassAWT windows的属性设置为主类。这意味着应用程序的主类必须是唯一的,但是 install4j 插入了它自己的主类,直到 7.0 总是相同的。作为一种解决方法,您可以反射性地更改 AWT 工具包的内部状态:

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>");
}
Run Code Online (Sandbox Code Playgroud)

在 install4j 8.0 中,将生成唯一的主类,生成的 .desktop 文件将包含相应的StartupWMClass条目。

  • 我们确实感谢通知,但有[一些担忧](https://meta.askubuntu.com/q/18685/449) 简短的回答——即使是来自产品所有者——也达不到我们对完整回答的要求. 对于这个问题,您是否有某种公共错误跟踪器,OP 可以验证他们的问题? (2认同)