Java 애플리케이션이 대시/도크에 두 번 나타납니다.

Java 애플리케이션이 대시/도크에 두 번 나타납니다.

우선, 아니요. 게으르게 Google에서 검색하고 싶지 않습니다. 나는 많은 것을 시도했지만 작동해야 한다고 말한 모든 것이 나에게 작동하지 않습니다.

Manjaro와 gnome Shell 3.18.1을 설치했습니다. gnome 내부에 dash-to-dock 확장을 설치했습니다. yEd와 phpstorm이라는 두 가지 이상의 Java 응용 프로그램이 있습니다. 둘 다 WM_CLASS sun-awt-X11-XFramePeer와 두 번째 WM_CLASS를 가지고 있습니다(jetbrains-phpstorm은 phpstorm용입니다. 예, 기억이 나지 않습니다).

내가 사용하고 있는 Java 버전은 최신 버전의 oracle입니다.

~# java -version
java version "1.8.0_66"

yEd와 phpstorm 모두 yaourt를 통해 설치했는데 데스크탑 파일이 제대로 생성된 것 같습니다. 하지만 어쨌든, phpstorm에서 두 번째 아이콘을 제거할 수 있는 유일한 방법(phpstorm만 즐겨찾기에 있습니다.)은 settings 을 통해서입니다 StartupWMClass=sun-awt-X11-XFramePeer. 그러나 yEd는 동일한 실행 프로그램에 나타납니다.

나는 또한 두 가지를 모두 추가하려고 시도했지만 StartupWMClass=sun-awt-X11-XFramePeer,jetbrains-phpstorm물론 그 중 하나도 작동하지 않았습니다.

클래스를 올바르게 설정한 기사를 많이 찾았지만 jetbrains-phpstorm이 작동하지 않았습니다(이전에도 이랬고 xprop WM_CLASS이 클래스도 표시되었습니다).

내가 놓친 다른 것이 있습니까?

답변1

Java 기반 애플리케이션을 작업할 때도 이런 현상을 본 적이 있습니다.

나는 이 문제를 WM_CLASS 문자열을 종료하는 null이 아닌 Java로 추적했습니다. Mutter는 결과적으로 이 유효하지 않은 문자열을 반환하는 것으로 보이며 gnome-shell은 이 유효하지 않은 문자열을 사용하여 애플리케이션 이름을 일치시킵니다. 이는 분명히 실패합니다.

WM_CLASS 문자열은 null로 끝나야 하기 때문에 이는 Java의 버그입니다. 이전에 유효했기 때문에 이 문제를 노출하기 위해 불만 사항이 어떻게 변경되었는지 잘 모르겠습니다.

관련 정보