首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >代替应用程序图标显示的Java图标;与install4j一起安装

代替应用程序图标显示的Java图标;与install4j一起安装
EN

Ask Ubuntu用户
提问于 2019-06-23 03:03:44
回答 1查看 1.1K关注 0票数 2

我有一个通过install4j安装的Java应用程序。将显示默认的Java图标来代替它。

这是它在桌面上的样子:

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

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

.desktop:

代码语言:javascript
复制
#!/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;
EN

回答 1

Ask Ubuntu用户

发布于 2019-06-23 08:55:06

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

主要问题是将AWT窗口的WMClass属性设置为main类。这意味着主类对于应用程序必须是唯一的,但是install4j插入自己的主类(最多7.0是相同的)。作为解决办法,您可以反射地更改AWT工具包的内部状态:

代码语言:javascript
复制
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>");
}

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

票数 5
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1153279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档