【发布时间】:2012-05-22 12:18:10
【问题描述】:
所有基于 Swing/NetBeans 的 Java GUI 应用程序似乎都具有相同的 WM_CLASS 值:
WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "java-lang-Thread"
这个参数可以通过发出xprop命令并指向窗口来查看。自定义它的实际目的是让类似 Mac 的扩展坞(例如 AWN(可能还有 Ubuntu 的 Unity))区分应用程序窗口并将它们分组在应用程序的固定启动器图标下。为此,需要在~/.local/share/applications 或/usr/share/applications 的.application 文件中相应地设置StartupWMClass 参数。不用说,如果多个应用程序对WM_CLASS 使用相同的字符串,AWN(和类似物)会感到困惑。
【问题讨论】:
-
看起来他们不打算着急... :-( 我希望 Gnome 3、Unity 以及 Windows 7 的现代窗口管理系统将导致 Oracle 唤醒。可悲的是,似乎他们选择了一种不同的、特定于 Unity 的方式来与 Unity 集成。
-
顺便说一句,“Bug ID: 6528430”似乎是 Java 6 的问题。为什么不为 Java 7 和 8 提交相同的文件?我怀疑他们是否会在旧版 Java 版本中添加这样的功能,使用 Java 8 等开发中的前沿技术似乎更好。
-
是的,有人知道如何评论和投票吗?页面看起来很静态:我可以看到一些 cmets,但我找不到如何发布我的,甚至找不到如何登录。
-
这有帮助吗:elliotth.blogspot.it/2007/02/fixing-wmclass-for-your-java.html?对于不能改代码的应用,也可以查看这个WM代理github.com/jelmerk/window-matching-agent,这样你只需要编辑应用命令行即可。