7

所有基于 Swing/NetBeans 的 Java GUI 应用程序似乎都具有相同的WM_CLASS价值:

WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "java-lang-Thread"

该参数可以通过发出xprop命令并指向窗口来查看。自定义它的实际目的是让类似 Mac 的扩展坞(例如 AWN(可能还有 Ubuntu 的 Unity))区分应用程序窗口并将它们分组在应用程序的固定启动器图标下。为此,需要在或中的文件中StartupWMClass相应地设置参数。不用说,如果多个应用程序对..application~/.local/share/applications/usr/share/applicationsWM_CLASS

4

1 回答 1

4

这篇博文在其中找到了控制它的字段Toolkit,名为awtAppClassName. 它建议使用反射来修改它:

Toolkit xToolkit = Toolkit.getDefaultToolkit();
java.lang.reflect.Field awtAppClassNameField = xToolkit.getClass().getDeclaredField("awtAppClassName");
awtAppClassNameField.setAccessible(true);
awtAppClassNameField.set(xToolkit, applicationName);
于 2015-03-23T19:03:09.367 回答