当前位置: 首页>>技术问答>>正文


如何在启动器中删除“launched” java程序的重复图标?

, , ,

问题描述

在Natty的Unity启动器中启动java程序(如IntelliJ IDEA和Crashplan)时,会显示重复的图标(见图)。对于IntelliJ,我创建了.desktop文件,对于Crashplan,.desktop文件随应用程序提供。是否有可以在.desktop文件(或其他地方)中更改的内容可以防止这种情况发生?我找不到团结本身的错误报告,但像Gnome-Do /Docky这样的程序有bug reports,并且必须对其应用程序进行内部更改以防止这种情况发生。

在此图像中,第一个图标是从.desktop文件创建的图标,第二个图标是在启动它之后。关闭应用程序时,第二个图标消失。

unity,launcher,java,ubuntu

自定义IntelliJ .desktop文件

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=/opt/idea/bin/idea128.png
Name[en_US]=IntelliJ IDEA
Exec=/opt/idea/bin/idea.sh
Name=IntelliJ IDEA
Icon=/opt/idea/bin/idea128.png
StartupNotify=true

Crashplan提供.desktop文件

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=CrashPlan
Categories=;
Comment=CrashPlan Desktop UI
Comment[en_CA]=CrashPlan Desktop UI
Exec=/usr/local/crashplan/bin/CrashPlanDesktop
Icon=/usr/local/crashplan/skin/icon_app_64x64.png
Hidden=false
Terminal=false
Type=Application
GenericName[en_CA]=

最佳解决方法

将StartupWMClass字符串添加到.desktop文件中。使用xprop命令获取此类。例如 :

$ xprop|grep WM_CLASS
 WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "java-lang-Thread"

$ cat /usr/share/applications/PHPStorm.desktop | grep StartupWM
StartupWMClass=sun-awt-X11-XFramePeer

this线程中的更多deatils(关于AWN,但也适用于Unity)

次佳解决方法

对于Ubuntu 11.10下的Intellij Idea 11,必须在以下行添加想法的.desktop文件:

StartupWMClass=jetbrains-idea

第三种解决方法

我能够为SQLDeveloper解决这个问题,这是一个java程序:

使用xprop(然后单击SQLDeveloper窗口),我找到了以下输出行:

WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "oracle-ide-boot-Launcher"

基于上面和https://bugs.launchpad.net/unity/+bug/757991中的注释,我将以下行添加到我的本地sqldeveloper.desktop文件中:

StartupWMClass=oracle-ide-boot-Launcher

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1788.html,未经允许,请勿转载。